這我在工作中需要時在網上找的一些程式碼 讓後經過我的加工拿出來和大家分享一下

/*******從txt文字文件中讀取資料,然後在匯入到Excel表中
使用IO流從文字文件中讀取資料,然後在讀入到DataTable轉入到Excel中********/
 
//txt文字文件路徑
txtpath = “D:\Trans_MA.txt”;
//讀取文字文件的資料
StreamReader swtxt = new StreamReader(txtpath ,Encoding .Default );
 
//一、如果文件中有相同的資料列的話 必須宣告每個列名,否則在輸入到DataTable中有報出有相同列的錯誤,有多少列就新增多少列過去
 
           //遍歷文件中每行的資料
            while ((txtfile = swtxt.ReadLine())!= null)
            {
                txtLength++;
                txtdata = txtfile.Split(“@”.ToCharArray());
                //新建行,行的列頭,資料型別與dataTable相同
                dr = dt.NewRow();
                dr[“公司程式碼] = txtdata[0];
                dr[“客戶訂單號] = txtdata[1];
                dr[“客戶出貨單號] = txtdata[2];
                dr[“蓋章碼] = txtdata[3];
                dr[“換貨日期] = txtdata[4];
                dr[“序號] = txtdata[5];
                dr[“售達方程式碼] = txtdata[6];
                dr[“送達方代號] = txtdata[7];
                dr[“貨主貨號] = txtdata[8];
                if (txtdata[9].Trim() == “0”)
                {
                    dr[“退換貨標記] = 退貨;
                }
                else if (txtdata[9].Trim() == “1”)
                {
                    dr[“退換貨標記] = 換貨;
                }
                dr[“單位] = txtdata[10];
                dr[“單位程式碼] = txtdata[11];
                dr[“基本單位與單位之間的換算比] = txtdata[12];
                dr[“基本單位] = txtdata[13];
                dr[“數量] = txtdata[14];
                dr[“單價] = txtdata[15];
                dr[“折讓金額] = txtdata[16];
                dr[“折讓型別] = txtdata[17];
                if (txtdata[18].Trim() == “0”)
                {
                    dr[“贈品] = 非贈品;
                }
                else if (txtdata[18].Trim() == “1”)
                {
                    dr[“贈品] = 贈品;
                }
                if (txtdata[19] == “”)
                {
                    dr[“送達的時間要求] = “NoTM”;
                }
                else
                {
                    dr[“送達的時間要求] = txtdata[18];
                }
                dr[“商品的生產日期要求(起始)”] = txtdata[20];
                dr[“商品的生產日期要求(終止)”] = txtdata[21];
                dr[“備註] = txtdata[22];
              //把每列新增到DataTable中
                dt.Rows.Add(dr);
            }
          
    //讀入到Excel表中就遇上面的大致相同了
   
    Microsoft.Office.Interop.Excel.Application myexcel = new Microsoft.Office.Interop.Excel.Application();
myexcel.Visible = true;
Microsoft.Office.Interop.Excel.Workbooks myworkbooks = myexcel.Workbooks;
Microsoft.Office.Interop.Excel.Workbook myworkbook = myworkbooks.Add(1);
Microsoft.Office.Interop.Excel.Worksheet myworksheet =(Microsoft .Office.Interop.Excel.Worksheet)myworkbook.Worksheets[1];
//設定顯示多少行,列的資料漢字表頭
Microsoft.Office.Interop.Excel.Range myrange =myworksheet.get_Range(“A1″,”W1”);
 object[] objrow = { “公司程式碼, 客戶訂單號, 客戶出貨單號, 蓋章碼, 換貨日期, 序號, 售達方程式碼, 送達方代號, 貨主貨號, 退換貨標記, 單位, 單位程式碼, 基本單位與單位之間的換算比, 基本單位, 數量, 單價, 折讓金額, 贈品, 送達的時間要求, 商品的生產日期要求(起始)”, 商品的生產日期要求(終止)”, 備註};
myrange.Value2 = objrow;
//整行excel的背景顏色             
myrange.Interior.ColorIndex = 4;
//設定整個單元格字型的顏色
myrange.Font.ColorIndex = 5;
 
myrange = myworksheet.get_Range(“A2”, System.Reflection.Missing.Value);
//Object[1001, 23] 設定excel表中的 1001行和 23列
object[,] objectarr = new Object[1001, 23];
                for (int i = 0; i < dt.Rows.Count-1; i++)
                {  
                    rowcount++;
                    int col = rowcount – 1;
                  //設定Excel表中顯示的列的情況
                    objectarr[col, 0] = SelectCompanycode((dt.Rows[i][“公司程式碼]).ToString ());
                    objectarr[col, 1] = dt.Rows[i][“客戶訂單號];
                    objectarr[col, 2] = dt.Rows[i][“客戶出貨單號].ToString().Trim();
                    objectarr[col, 3] = dt.Rows[i][“蓋章碼].ToString().Trim();
                    objectarr[col, 4] = dt.Rows[i][“換貨日期].ToString().Trim();
                    objectarr[col, 5] = dt.Rows[i][“序號].ToString().Trim();
                    objectarr[col, 6] = dt.Rows[i][“售達方程式碼].ToString().Trim();
                    objectarr[col, 7] = dt.Rows[i][“送達方代號].ToString().Trim();
                    objectarr[col, 8] = dt.Rows[i][“貨主貨號].ToString().Trim();
                    objectarr[col, 9] = dt.Rows[i][“退換貨標記].ToString().Trim();
                    objectarr[col, 10] = dt.Rows[i][“單位].ToString().Trim();
                    objectarr[col, 11] = dt.Rows[i][“單位程式碼].ToString().Trim();
                    objectarr[col, 12] = dt.Rows[i][“基本單位與單位之間的換算比].ToString().Trim();
                    objectarr[col, 13] = dt.Rows[i][“基本單位].ToString().Trim();
                    objectarr[col, 14] = dt.Rows[i][“數量].ToString().Trim();
                    objectarr[col, 15] = dt.Rows[i][“單價].ToString().Trim();
                    objectarr[col, 16] = dt.Rows[i][“折讓金額].ToString().Trim();
                    objectarr[col, 17] = dt.Rows[i][“折讓型別].ToString().Trim();
                    objectarr[col, 18] = dt.Rows[i][“贈品].ToString().Trim();
                    objectarr[col, 19] = dt.Rows[i][“送達的時間要求].ToString().Trim();
                    objectarr[col, 20] = dt.Rows[i][“商品的生產日期要求(起始)”].ToString().Trim();
                    objectarr[col, 21] = dt.Rows[i][“商品的生產日期要求(終止)”].ToString().Trim();
                    objectarr[col, 22] = dt.Rows[i][“備註].ToString().Trim();
                    
myrange = myrange.get_Resize(1001, 23);
myrange.Value2 = objectarr;
myrange.EntireColumn.AutoFit();
myexcel = null;
 
 
// 二、如果txt文字文件中沒有相同的資料,就不需要在新增多少 行列了 可以通過遍歷資料行列就可以了
 
    //遍歷文件中每行的資料
 while ((txtfile = swtxt.ReadLine())!= null)
   {
   txtLength++;
   txtdata = txtfile.Split(“@”.ToCharArray());
if   (blnFlag)
{
 blnFlag   =   false;
   //獲取長度
    intColCount   =   txtdata.Length;
 for   (int   i   =   0;   i   <   txtdata.Length;   i++)
   {
       //新增列
         mydc   =   new   DataColumn(txtdata [i]);
         //將新增的列加入到DataTable中
         mydt.Columns.Add(mydc);
     }                                        
   }                               
 
     //新建立行,行的列頭、資料型別與DataTable相同
     Mydr   =   mydt.NewRow();
     for   (int   i   =   0;   i   <   intColCount;   i++)
      {
        // 給新行的資料賦值
       Mydr[i]   =   txtdata [i];                
      }
      //將新行資料加入到Data Table中
       mydt.Rows.Add(myrrh);
            }