C# .csv文件转为Excel格式;Excel格式转换为.csv

using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using Excel=Microsoft.Office.Interop.Excel;

namespace WinFromAPP
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 将Csv文件转换为XLS文件
        /// </summary>
        /// <param name="FilePath">文件全路路径</param>

        /// <returns>返回转换后的Xls文件名</returns>
        public static string CSVSaveasXLS(string FilePath)
        {
            QuertExcel();
            string _NewFilePath = "";

            Excel.Application excelApplication;
            Excel.Workbooks excelWorkBooks = null;
            Excel.Workbook excelWorkBook = null;
            Excel.Worksheet excelWorkSheet = null;

            try
            {
                excelApplication = new Excel.ApplicationClass();
                excelWorkBooks = excelApplication.Workbooks;
                excelWorkBook = ((Excel.Workbook)excelWorkBooks.Open(FilePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value));
                excelWorkSheet = (Excel.Worksheet)excelWorkBook.Worksheets[1];
                excelApplication.Visible = false;
                excelApplication.DisplayAlerts = false;
                _NewFilePath = FilePath.Replace(".csv", ".xls");
                excelWorkBook.SaveAs(_NewFilePath, Excel.XlFileFormat.xlAddIn, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                excelWorkBook.Close();
                QuertExcel();
                // ExcelFormatHelper.DeleteFile(FilePath);
                //可以不用杀掉进程QuertExcel();

                GC.Collect(System.GC.GetGeneration(excelWorkSheet));
                GC.Collect(System.GC.GetGeneration(excelWorkBook));
                GC.Collect(System.GC.GetGeneration(excelApplication));

            }
            catch (Exception exc)
            {
                throw new Exception(exc.Message);
            }

            finally
            {
                GC.Collect();
            }

            return _NewFilePath;
        }

        /// <summary>
        /// 将xls文件转换为csv文件
        /// </summary>
        /// <param name="FilePath">文件全路路径</param>
        /// <returns>返回转换后的csv文件名</returns>
        public static string XLSSavesaCSV(string FilePath)
        {
            QuertExcel();
            string _NewFilePath = "";

            Excel.Application excelApplication;
            Excel.Workbooks excelWorkBooks = null;
            Excel.Workbook excelWorkBook = null;
            Excel.Worksheet excelWorkSheet = null;

            try
            {
                excelApplication = new Excel.ApplicationClass();
                excelWorkBooks = excelApplication.Workbooks;
                excelWorkBook = ((Excel.Workbook)excelWorkBooks.Open(FilePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value));
                excelWorkSheet = (Excel.Worksheet)excelWorkBook.Worksheets[1];
                excelApplication.Visible = false;
                excelApplication.DisplayAlerts = false;
                _NewFilePath = FilePath.Replace(".xls", ".csv");

                // excelWorkSheet._SaveAs(FilePath, Excel.XlFileFormat.xlCSVWindows, Missing.Value, Missing.Value, Missing.Value,Missing.Value,Missing.Value, Missing.Value, Missing.Value);
                excelWorkBook.SaveAs(_NewFilePath, Excel.XlFileFormat.xlCSV, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                QuertExcel();
                //ExcelFormatHelper.DeleteFile(FilePath);
            }
            catch (Exception exc)
            {
                throw new Exception(exc.Message);
            }
            return _NewFilePath;
        }

        /// <summary>
        /// 删除一个指定的文件
        /// </summary>
        /// <param name="FilePath">文件路径</param>
        /// <returns></returns>
        public static bool DeleteFile(string FilePath)
        {
            try
            {
                bool IsFind = File.Exists(FilePath);
                if (IsFind)
                {
                    File.Delete(FilePath);
                }
                else
                {
                    throw new IOException("指定的文件不存在");
                }
                return true;
            }
            catch (Exception exc)
            {
                throw new Exception(exc.Message);
            }

        }

        /// <summary>
        /// 执行过程中可能会打开多个EXCEL文件 所以杀掉
        /// </summary>
        private static void QuertExcel()
        {
            Process[] excels = Process.GetProcessesByName("EXCEL");
            foreach (var item in excels)
            {
                item.Kill();
            }
        }

        private void btnConvert_Click(object sender, EventArgs e)
        {
            //CSVSaveasXLS(textBox1.Text);

            XLSSavesaCSV(textBox1.Text);
        }
    }
}原文转载自:http://www.cnblogs.com/junjie94wan/archive/2013/05/23/3094483.html
时间: 2024-10-08 12:06:31

C# .csv文件转为Excel格式;Excel格式转换为.csv的相关文章

cocos2d-x 读取CSV文件,读取本地Excel配置表的方法

//CSVReader.h #define MAP_LINE std::map<std::string, std::string> //key为首行字符串, value为此列字符串 #define MAP_CONTENT std::map<int, MAP_LINE> //key为code, value为一行map #define VEC_MAP std::vector<std::pair<std::string, int>> //csv文件读取器 clas

python中如何将csv文件转为xls文件

废话开端 要实现将csv文件转换为xls文件,就需要用到python中非常强大的第三方库---pandas.之前基本没用过pandas,对它可以说是一点都不了解,但是最近在工作中要经常处理各种Excel.csv文件,就不得不用到了,也还是处于学习阶段,一边学习,一边总结记录.那我们都知道pandas不仅可以操作Excel,csv,而且还可以处理json.pickle.html.table等等各种类型的数据.功能强大,非常实用,深受广大程序猿的喜爱,实属开发之必备良品啊! 代码实现 from io

excel批量转换为CSV格式,xls批量导出csv格式

工具/原料 excel 2013 地址链接:http://pan.baidu.com/s/1c1ZABlu 密码:d3rc 方法/步骤 首选我们把需要导出为CVS的Excel文件整理集中到一个文件夹中.然后新建一个文件夹用来保存CSV文件的.支持Xlsx.xls格式.   新建一个EXCEL表格,打开后,点击菜单栏上的"开发工具":功能区下点击打开Visual Basic.   如果菜单栏上没有开发工具,则在选项中添加.点击文件,弹出菜单选择选项.在EXCEL选项中,点击自定义功能区,

关于CSV文件 Excel打开乱码问题的解决方案

近日写java程序中,将数据输出到csv文件中,发现Excel打开之后,中文均为乱码 于是寻找解决方案,发现最简单的方式还是如此了 1. 将输出的csv文件用记事本打开 2. 另存为将文件编码格式改为UTF-8 3. 再用Excel打开,乱码问题得以解决 ,

解决Excel打开UTF-8编码CSV文件乱码的问题

前段时间用某软件导出了一个CSV文件,需要在Excel中处理并打印,但是我直接用Excel打开这个CSV文件却发现,文件中的所有中文字符都变成了乱码,经过自己的尝试,采用数据导入的方法解决了问题,后来又搜了一下,发现还有其他方法,数据导入只是其中一种而已.现在整理总结一下: 方法1.数据导入 打开 Excel,执行"数据"->"自文本",选择 CSV 文件,出现文本导入向导,选择"分隔符号",下一步,勾选"逗号",去掉&

Pandas 基础(4) - 读/写 Excel 和 CSV 文件

这一节将分别介绍读/写 Excel 和 CSV 文件的各种方式: - 读入 CSV 文件 首先是准备一个 csv 文件, 这里我用的是 stock_data.csv, 文件我已上传, 大家可以直接下载下来使用. 正如前面讲过的, csv 文件可以放在 jupyter notebook 同目录下, 这样直接写文件名就可以了, 但是如果没有放在同目录下, 就需要写绝对路径, 否则读取不到. import pandas as pd df = pd.read_csv('/Users/rachel/Sit

csv文件生成小工具

运维经常遇到客户要求下载某些数据列表的需求.一般我们是提供一个csv格式的文件. 如果用shell来做这件事的,通常是两种方法: 1.捕获终端输出,后续对输出做一定处理.但是终端输出实际上已经丢失了很多格式信息,很难做到完善处理. 2.用mysql内置的FILE命令一次性生成文件.mysql内置的函数功能有限,没法做到比较好的输出格式化. 所以选择了python来做. 主要注意几点: 1.我们的数据库是使用utf8编码.所以生成的csv文件默认话就是utf8编码.实际上也不应该转码,因为utf8

csv文件乱码

问题描述: 生成的csv文件,设置为UTF-8格式,在windows上用EXCEL打开的话会乱码,在linux上用vim或者cat打开查看正常:设置为GBK格式的话,在windows上用EXCEL打开正常,但在linux上乱码 解决方法: 在csv文件头部的最前面加bom BOM(Byte Order Mark),是 UTF编码方案里用于标识编码的标准标记,在 UTF-16里本来是 FF FE,变成 UTF-8就成了 EF BB BF.这个标记是可选的,因为 UTF8字节没有顺序,所以它可以被用

自制工具:CSV代码生成器:自动生成CSV文件对应的C++实体类和字段类型解析代码

本文乃Siliphen原创,转载请注明出处:http://blog.csdn.net/stevenkylelee 更有开发效率地使用CSV文件 为了更有效率地使用CSV文件,我制作了一个工具:Code代码生成器. 这个工具可以对CSV文件进行简单地配置,自动生成这个CSV文件对应的C++数据结构和字段类型解析函数代码. 工程项目只要加入这些自动生成的代码,就可以更方便地使用来自CSV配置文件的数据. 用工具自动生代码,可以省去了手工编写.手工维护那些大量的.无聊繁琐的类型定义.数据转换的代码的过