江南才子 发表于 2021-6-24 13:23:10

Excel表的一些数据应用(从txt文本导出,导入到Excel表)

  这我在工作中需要时在网上找的一些代码 让后经过我的加工拿出来和大家分享一下
/***从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;                dr["客户订单号"] = txtdata;                dr["客户出货单号"] = txtdata;                dr["盖章码"] = txtdata;                dr["换货日期"] = txtdata;                dr["序号"] = txtdata;                dr["售達方代碼"] = txtdata;                dr["送達方代号"] = txtdata;                dr["货主货号"] = txtdata;                if (txtdata.Trim() == "0")                {                  dr["退换货标记"] = "退货";                }                else if (txtdata.Trim() == "1")                {                  dr["退换货标记"] = "换货";                }                dr["单位"] = txtdata;                dr["單位代碼"] = txtdata;                dr["基本單位與單位之間的換算比"] = txtdata;                dr["基本單位"] = txtdata;                dr["数量"] = txtdata;                dr["单价"] = txtdata;                dr["折讓金額"] = txtdata;                dr["折讓類型"] = txtdata;                if (txtdata.Trim() == "0")                {                  dr["赠品"] = "非赠品";                }                else if (txtdata.Trim() == "1")                {                  dr["赠品"] = "赠品";                }                if (txtdata == "")                {                  dr["送达的时间要求"] = "NoTM";                }                else                {                  dr["送达的时间要求"] = txtdata;                }                dr["商品的生产日期要求(起始)"] = txtdata;                dr["商品的生产日期要求(终止)"] = txtdata;                dr["备注"] = txtdata;            //把每列添加到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;  //设置显示多少行,列的数据汉字表头
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 设定excel表中的 1001行和 23列object[,] objectarr = new Object;               for (int i = 0; i < dt.Rows.Count-1; i++)                {                     rowcount++;                  int col = rowcount - 1;                  //设定Excel表中显示的列的情况                  objectarr = SelectCompanycode((dt.Rows["公司代码"]).ToString ());                  objectarr = dt.Rows["客户订单号"];                  objectarr = dt.Rows["客户出货单号"].ToString().Trim();                  objectarr = dt.Rows["盖章码"].ToString().Trim();                  objectarr = dt.Rows["换货日期"].ToString().Trim();                  objectarr = dt.Rows["序号"].ToString().Trim();                  objectarr = dt.Rows["售達方代碼"].ToString().Trim();                  objectarr = dt.Rows["送達方代号"].ToString().Trim();                  objectarr = dt.Rows["货主货号"].ToString().Trim();                  objectarr = dt.Rows["退换货标记"].ToString().Trim();                  objectarr = dt.Rows["单位"].ToString().Trim();                  objectarr = dt.Rows["單位代碼"].ToString().Trim();                  objectarr = dt.Rows["基本單位與單位之間的換算比"].ToString().Trim();                  objectarr = dt.Rows["基本單位"].ToString().Trim();                  objectarr = dt.Rows["数量"].ToString().Trim();                  objectarr = dt.Rows["单价"].ToString().Trim();                  objectarr = dt.Rows["折讓金額"].ToString().Trim();                  objectarr = dt.Rows["折讓類型"].ToString().Trim();                  objectarr = dt.Rows["赠品"].ToString().Trim();                  objectarr = dt.Rows["送达的时间要求"].ToString().Trim();                  objectarr = dt.Rows["商品的生产日期要求(起始)"].ToString().Trim();                  objectarr = dt.Rows["商品的生产日期要求(终止)"].ToString().Trim();                  objectarr = dt.Rows["备注"].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 );         //将添加的列加入到DataTable中         mydt.Columns.Add(mydc);      }                                          }                                    //新创建行,行的列头、数据类型与DataTable相同   Mydr   =   mydt.NewRow();      for   (int   i   =   0;   i   <   intColCount;   i++)       {         // 给新行的数据赋值       Mydr   =   txtdata ;                     }      //将新行数据加入到Data Table中       mydt.Rows.Add(myrrh);             }
页: [1]
查看完整版本: Excel表的一些数据应用(从txt文本导出,导入到Excel表)