zoukankan      html  css  js  c++  java
  • C# 将内存中的datatable数据导出为Excel(方法一,以文件流方式导出)【转载】

    技术要点:1.创建文件流,用于写最终的文件StreamWriter sw = new StreamWriter(fileName, false,Encoding.GetEncoding("gb2312"));

    2.使用  StringBuilder类把数据组合为长字符串插入到excel文件中,
    sb.Append(dt.rows[i][j].ToString() + " ");
    注 意,可不能漏了" " 这个是非常重要的! 因为c# " "就等于 键盘上的Tab  [朋友们可以试试:打开新的txt然后输入1按Tab,输入2按Tab,输入3按Tab保存,然后打开excel文件  把刚刚保存的txt文件拉进去打开你就发现原来。这样写的话1 2 3 会分别在每个单元格上的了。所以上面才使用 " "连起来数据库出来的那堆数据,这样一次性导进去,他们就会按照每个单元格来填充!]

    废话不多说了,直接上code。

    需要引用:
    using System.IO;

    publicvoid WriteExcel(DataSet ds, string path)//其中path里要包含要创建的Excel文件的名称
            {
                try
                {
                    StreamWriter sw =new StreamWriter(path, false,Encoding.GetEncoding("gb2312"));
                    StringBuilder sb =new StringBuilder();
                    for (int k =0; k < ds.Tables[0].Columns.Count; k++)
                    {
                        sb.Append(ds.Tables[0].Columns[k].ColumnName.ToString() +" ");
                    }
                    sb.Append(Environment.NewLine);

                    for (int i =0; i < ds.Tables[0].Rows.Count; i++)
                    {
                         for (int j =0; j < ds.Tables[0].Columns.Count; j++)
                        {
                            sb.Append(ds.Tables[0].Rows[i][j].ToString() +" ");
                        }
                        sb.Append(Environment.NewLine);//每写一行数据后换行
                    }
                    sw.Write(sb.ToString());
                    sw.Flush();
                    sw.Close();//释放资源
                    MessageBox.Show("已经生成指定Excel文件!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }            
            }

  • 相关阅读:
    跨域问题
    Django缓存机制
    Django Reat Framework --- 版本控制
    Hellow!
    回忆
    突然看见新评论通知
    [退役前的小声bbbbbbbbbbbbbbbbbbbbbb]
    【题解】【CQOI2018】解锁屏幕(玄学优化)
    solution
    1009-自闭++
  • 原文地址:https://www.cnblogs.com/happylyyer/p/4276347.html
Copyright © 2011-2022 走看看