程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#完成把txt文本數據疾速讀取到excel中

C#完成把txt文本數據疾速讀取到excel中

編輯:C#入門知識

C#完成把txt文本數據疾速讀取到excel中。本站提示廣大學習愛好者:(C#完成把txt文本數據疾速讀取到excel中)文章只能為提供參考,不一定能成為您想要的結果。以下是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("轉化勝利!");
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved