栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#实现把txt文本数据快速读取到excel中

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#实现把txt文本数据快速读取到excel中

今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源。搜集一些c#操作excel的程序。步骤如下:

下载一个Microsoft.Office.Interop.Excel.dll   在项目中引用。

编写代码如下:

      string path = "c://date//xyu.txt";
      StreamReader sr = new StreamReader(path);
      string strLine = sr.ReadLine();
      int rowNum = 1;
      object missing = System.Reflection.Missing.Value;

      ApplicationClass app = new ApplicationClass();

      app.Application.Workbooks.Add(true);

      Workbook book = (Workbook)app.ActiveWorkbook;
      Worksheet sheet = (Worksheet)book.ActiveSheet;
      while (!string.IsNullOrEmpty(strLine))
      {
 string[] tempArr;
 tempArr = strLine.Split(',');
 for (int k = 1; k <= tempArr.Length; k++)
 {
   sheet.Cells[rowNum, k] = tempArr[k - 1];

 }
 strLine = sr.ReadLine();
 rowNum++;

      }

      //保存excel文件
      book.SaveCopyAs("D://source.xls");
      //关闭文件
      book.Close(false, missing, missing);
      //退出excel
      app.Quit();
      MessageBox.Show("转化成功!");

  以上代码可以实现功能,由于txt中的数据有60501行,数据量太大。我估算了一下,用以上代码转到excel要用大约2-3分钟。我一共要转9个txt。一共要用20多分钟。这样作出系统显然是让人难以忍受的。接着找资料,发现用rang方法可以提高速率。只用大约3-4秒钟的时间,提高效率几十倍。代码如下:

 string path = "c://date//xyu.txt";
      StreamReader sr = new StreamReader(path);
      string strLine = sr.ReadLine();
      int rowNum = 1;
      object missing = System.Reflection.Missing.Value;

      ApplicationClass app = new ApplicationClass();

      app.Application.Workbooks.Add(true);

      Workbook book = (Workbook)app.ActiveWorkbook;
      Worksheet sheet = (Worksheet)book.ActiveSheet;
      Range r = sheet.get_Range("A1", "C1");

      //获取行数

 
 


      object[,] objectData = new object[65535, 3]; 
      while (!string.IsNullOrEmpty(strLine))
      {
 string[] tempArr;
 tempArr = strLine.Split(',');
 for (int k = 1; k <= tempArr.Length; k++)
 {
   
   objectData[rowNum-1, k-1] = tempArr[k - 1];

 }
 strLine = sr.ReadLine();
 rowNum++;

      }
      r = r.get_Resize(65535, 3);
      r.Value2 = objectData;
      r.EntireColumn.AutoFit();
      //保存excel文件
      book.SaveCopyAs("D://source.xls");
      //关闭文件
      book.Close(false, missing, missing);
      //退出excel
      app.Quit();
      MessageBox.Show("转化成功!");
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/125200.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号