这我在工作中需要时在网上找的一些代码 让后经过我的加工拿出来和大家分享一下

/*******从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);
            }