博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 将内存中的datatable数据导出为Excel(方法一,以文件流方式导出)
阅读量:7085 次
发布时间:2019-06-28

本文共 1268 字,大约阅读时间需要 4 分钟。

上次做了以Excel文件为数据源,进行数据导入,今天,给大家分享一下如何将内存中的datatable以文件流的方式导出为Excel文件,而且个人觉得这个方法非常不错,高效,简单。

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

2.使用  StringBuilder类把数据组合为长字符串插入到excel文件中,

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

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

需要引用:

using System.IO;

publicvoid WriteExcel(DataSet ds, string path)

        {
            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() +"\t");
                }
                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() +"\t");
                    }
                    sb.Append(Environment.NewLine);//每写一行数据后换行
                }
                sw.Write(sb.ToString());
                sw.Flush();
                sw.Close();//释放资源
                MessageBox.Show(
"已经生成指定Excel文件!");
            }
           
catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }           
        }

 

转载于:https://www.cnblogs.com/dogxuefeng/archive/2012/04/09/2439089.html

你可能感兴趣的文章
Apache2 服务器异常问题Your browser sent a request that this server could not understan
查看>>
HTTP常见状态码
查看>>
提交版本审核提示无效二进制文件Apps are not allowed to listen to device lock notifications....
查看>>
Confluence 6 复杂授权或性能问题
查看>>
Confluence 6 外部参考
查看>>
Linux磁盘分区-GPT分区
查看>>
gRPC在c#中的使用(服务端)
查看>>
Python之sys模块
查看>>
Eclipse+Maven+Nexus+Hudson+Svn自动部署
查看>>
通讯与互联网行业软件项目运作的一些不同
查看>>
Mantis 企业邮箱配置
查看>>
android-魔法泡泡动画分析(附源码)
查看>>
深入JVM专题
查看>>
Mac下如何安装配置Homebrew
查看>>
普通用户安装zabbix监控服务
查看>>
Nginx安装
查看>>
javascript构造对象的全过程
查看>>
Java 调用截图功能
查看>>
Mac OS X El Capitan 关闭sip
查看>>
【学习笔记】Android性能优化----->内存优化
查看>>