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

推荐订阅源

U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
博客园 - Franky
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Last Week in AI
Last Week in AI
腾讯CDC
F
Full Disclosure
T
Tailwind CSS Blog
量子位
N
Netflix TechBlog - Medium
Stack Overflow Blog
Stack Overflow Blog
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
A
About on SuperTechFans
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
MyScale Blog
MyScale Blog
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
博客园 - 【当耐特】
SecWiki News
SecWiki News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
宝玉的分享
宝玉的分享
S
Schneier on Security
D
DataBreaches.Net
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
Google Online Security Blog
Google Online Security Blog
IT之家
IT之家
H
Hacker News: Front Page
T
Tor Project blog
H
Help Net Security
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Help Net Security
Help Net Security
V2EX - 技术
V2EX - 技术
The GitHub Blog
The GitHub Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Security Latest
Security Latest
AI
AI

博客园 - 冯岩

RSA算法 Android JAVA C#互通 jquery.autocomplete.js 插件的自定义搜索规则 LINQ TO SQL 动态查询 ASPX多服务器控件下使用Jquery.validate.js 接受来自服务器的数据连接时发生超时(30000 毫秒)问题原因及解决方法 防止网页被客户端IE缓存 dottext阅读之系统调度分析 Javascript对日期的操作 C#读取被进程占用的文件 SqlServer 无日志文件附加 windows2003远程桌面退出后系统自动注销的解决方法 JS获取触发事件元素的方法 JS处理选取值 Marquee首尾相连不间断移动 开始完全显示 windows Server 2008常见问题及解决方法 .NET 特性Attribute[三] .NET 特性Attribute[二] .NET 特性Attribute[一] [安装程序配置服务器失败]解决SQL Server2000安装失败
c#将数据导入Excel另类方法
冯岩 · 2008-09-21 · via 博客园 - 冯岩

今天公司突然给个Excel模版,要将数据导入。这方法网上应该一搜一大把,但奇怪的是找了几种方法居然不理想。其中有一篇,大概是讲用模版且分页导出Excel。试了作者的例子。使用它提供的方法必须分页,每页25条,多了还不行。显示不符合我的要求。

使用ASP.NET中的DATAGRID控件可以使用导出Excel。但其导出的本质是Response一段HTML代码,并且设置输出类型为Excel即可。其实这种方法与控件没有关系,换言之,只要你设置了HTML代码,以Excel类型输出到页面,即可实现任意你想要的格式。

但现在的问题是这个格式 可能并不是你的HTML代码在页面上体现的形式,因为你定义的CSS可能输出到Excel它并不支持。那么怎么办呢?

我突然想到Excel要是有导出HTML功能岂不美栽?打开Excel。点击 文件。出现在菜单中 出现了 另存为网页。在接下来出现的对话框中 选择 工作表,而不要选择 整体工作薄,因为如果选择整个工作薄,这样导出后它会将CSS存为单独文件。我们稍后使用使用起来不便。

选择保存后,会生成一个单一的HTML文件,并且CSS样式都有,这里的CSS样式很重要,它在Excel中会得到支持。

然后我们可以读取这个HTML代码,需要注意的是,需要先把<html</html>这二个标记去掉。否则输出不了Excel。同时最好去掉这些代码中的JS代码。

然后你可以将你的数据读取放入到DataTable中,然后循环<tr>放入,即可!

下面给出一个示例代码。

Code

注意上面很多代码,并不是我一行行写的,这是很不明智的方法,HTML代码是从Excel是导出的,而一行行变成sb.Append形式是通过工具生成的。这工具不难,自己都可以写一个。注意上面//数据区域,是读取数据库,然后一行行循环。最后调用如下方式输出即可。

private void Page_Load(object sender, System.EventArgs e)
        {
            Response.Clear();
            Response.Buffer 
= true;
            Response.Charset 
= "GB2312";
            Response.ContentEncoding 
= System.Text.Encoding.GetEncoding("gb2312");//设置输出流为简体中文 
            Response.AppendHeader("Content-Disposition""attachment;filename=cnqsq.xls");

            Response.ContentType 

= "application/ms-excel";

            EnableViewState 

= false;
            Response.Write(data()); 
            Response.End();

        }

示例代码就不给出了,因为主要是方法。提供方法思路,相信实现起来并不难。