惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
T
Threat Research - Cisco Blogs
小众软件
小众软件
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tailwind CSS Blog
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
博客园 - 【当耐特】
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
The Cloudflare Blog
The Last Watchdog
The Last Watchdog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
S
Secure Thoughts
O
OpenAI News
P
Proofpoint News Feed
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
T
Tenable Blog
A
Arctic Wolf
L
LINUX DO - 热门话题
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Visual Studio Blog
Hacker News: Ask HN
Hacker News: Ask HN
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
博客园 - Franky
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
博客园_首页
雷峰网
雷峰网
IT之家
IT之家
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
H
Heimdal Security Blog

博客园 - 我家的木子

asp-for tag helper失效 EF code first:列名 'Discriminator' 无效 jQuery获取属性 SVN提交修改时出现:Checksum mismatch bat笔记 SEO笔记:构建URL的15个SEO最佳实践 SEO笔记:Anatomy of a URL 妙用Excel数据透视表和透视图向导,将二维数据转换为一维数据 安装WIN7时提示“缺少所需的CD/DVD驱动器设备驱动程序” YTD易出现断层问题,请注意! Xcel 测试版使用手册 Office2003与Office2007默认打开方式的切换 - 我家的木子 - 博客园 对 Office VBA 项目的编程访问被拒绝 SharePoint 2007:该表单无法显示,因为会话状态不可用。 - 我家的木子 - 博客园 css滤镜实现页面灰色黑白色效果代码 div最低高度设置 - 我家的木子 - 博客园 Ajax联动之后 js 跨行文本出现“未结束的字符串常量”问题,如何解决 - 我家的木子 - 博客园 回发或者回调参数无效 - 我家的木子 - 博客园
将数据库查询结果导出为Excel
我家的木子 · 2010-04-30 · via 博客园 - 我家的木子

这里的数据库是SQL Server,Excel 为2003版。

系统升级,从原来的asp改成asp.net,其他的都还好,下载报告这一项可发了不少时间。

公司前辈写的程序是asp,用ado写excel文件。我这人就是懒,被asp折磨死了,所以就直接忽视了,后来才知道这是个杯具,哎。

最开始的方法是用System.IO.StringWriter画table。下载的报告是没问题了,但是后续操作出现了故障:

比如,下载的excel叫a.xls。然后新建一个sheet,例如做一个透视表,然后保存。就出现了一个叫“a.file”的文件夹,里面的文件大概是一些样式表,htm。

如果想把a.xls保存在其他地方,以前可以直接对a.xls Ctrl+C,Ctrl+V就可以了,现在需要将两个文件同时进行操作。否则提示缺少文件。

所以,这个方法就pass了。

直接引用 .NET自带的COM组件,对我这里是不行的,服务器没有安装Office,⊙﹏⊙b汗

然后想到的是 用System.IO.StringWriter直接写\t,\r.这样又会出现问题,比如下载奖品,奖品描述里面的内容比较多,数据就折行了【如下图】,

红色线条其实为一条数据,很明显这个更加不行。

后来就在“下载demo,然后研究,然后再否定 ”的怪圈里面跑,是在是不行了,去codeproject下载了一个“ A Very Easy to Use Excel XML Import-Export Library ”,然后step by step,终于把我遇到的问题给解决了,到底是牛人呀。

代码

//首先需要添加引用 Yogesh.Extensions.dll & Yogesh.ExcelXml.dll
//然后导入命名空间
using Yogesh.ExcelXml;//利用静态方法创建一个ExcelXmlWorkbook对象
ExcelXmlWorkbook book = ExcelXmlWorkbook.DataSetToWorkbook(ds);
//创建一个IO流,按作者说的IO流对象比简单的路径好处理错误,“So, the preferred way to import is to pass a Stream because it gives you more control with error management.”
st = System.IO.File.Create(Path);
//Export方法返回值是bool
book.Export(st, ExportFormat.Xml)

这个方法在本地测试通过,不知道传到没有按照Office的服务器上面会怎样?

未完待续--》》