Excel转CSV无处理过程

引用com中的Microsoft.Excel 11.0或12.0 Object Library.
将Microsoft.Office.Interop.Excel属性“嵌入互操作类型”设置为true.


/// <summary>
        /// 将excel文件另存csv文件
        /// </summary>
        /// <param name="excelFileName">Excel文件路径</param>
        /// <param name="csvFileName">csv文件路径</param>
        public static void SaveAsExcel(string excelFileName, string csvFileName)
        {
            //定义一个COM中空类型的对象(作用类似于大家所熟悉的null)
            object missing = System.Reflection.Missing.Value;

            //创建Excel应用程序对象(会帮我们在启动Excel进程)
            Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.ApplicationClass();

            Microsoft.Office.Interop.Excel.Workbook wb = app.Application.Workbooks.Open(excelFileName, missing, missing, missing, missing, missing, missing, missing,
            missing, missing, missing, missing, missing, missing, missing);
            //不出现提示,用默认的选择
            app.Application.DisplayAlerts = false;
            //不运行excel界面
            app.Application.Visible = false;

            Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)wb.ActiveSheet;
            try
            {
                //另存为csv格工,注意Excel.XlFileFormat.xlCSV参数,要另存为别的格式,也是在这里设置
                sheet.SaveAs(csvFileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV, missing, missing, false, false, false, missing, missing, false);
            }
            finally
            {

                wb.Close(false, missing, missing);

                app.Quit();
            }
        }
        /// <summary>
        /// 将csv文件中的数据转成dataTabel
        /// </summary>
        /// <param name="path">csv路径</param>
        /// <returns>DataTable</returns>
        public static DataTable CSVToDS(string path)
        {
            String line;
            String[] split = null;
            DataTable table = new DataTable("auto");
            DataRow row = null;
            StreamReader sr = new StreamReader(path, Encoding.Default);

            //创建与数据源对应的数据列
            line = sr.ReadLine();
            split = line.Split(',');
            foreach (String colname in split)
            {
                table.Columns.Add(colname, System.Type.GetType("System.String"));
            }
            //将数据填入数据表
            int j = 0;
            while ((line = sr.ReadLine()) != null)
            {
                j = 0;
                row = table.NewRow();
                split = line.Split(',');
                foreach (String colname in split)
                {
                    row[j] = colname;
                    j++;
                }
                table.Rows.Add(row);
            }
            sr.Close();
            //显示数据
            return table;
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值