Excel表的一些數據應用(從txt文本導出,導入到Excel表)

這我在工做中須要時在網上找的一些代碼 讓後通過個人加工拿出來和你們分享一下ide

/*******從 txt文本文檔中讀取數據,而後在導入到Excel表中
使用 IO流從文本文檔中讀取數據,而後在讀入到DataTable轉入到Excel中********/
 
//txt文本文檔路徑
txtpath = "D:\\Trans_MA.txt";
//讀取文本文檔的數據
StreamReader swtxt = new StreamReader(txtpath ,Encoding .Default );
 
//1、若是文檔中有相同的數據列的話  必須聲明每一個列名,不然在輸入到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;
 
 
// 2、若是 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);
            }
相關文章
相關標籤/搜索