asp.net导出数据到Excel的方法(完全无组件)
发布日期:2022-02-05 18:27:43
浏览次数:13
分类:技术文章
本文共 2363 字,大约阅读时间需要 7 分钟。
今天把大家最常用的功能 ---asp.net导出数据到Excel, 通常的方法 是组件形式的,但是ASP.NET
对杀死Excel.exe支持不够好,特别还需要设置dcom太麻烦了.现在我给大家的是我做 开发,已经应用到实际项目的方法,该方法不用调用Excel.exe进程.有不明白的,可以在下面留言,我会做解答的.
using System; using System.Text; using System.Data; using System.Data.OleDb; namespace PowerAgent.DBUtility ... { /**//// Copyright (C) 2004-2008 WangXudong /// http://www.wangxudong.com && http://xudongyh.cnblogs.com /// DataToExcel 的摘要说明。 /// </summary> public class DataToExcel ...{ const string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;"; public DataToExcel() ...{ } public string DataTableToExcel(DataTable dt, string excelPath) ...{ if (dt == null) ...{ return "DataTable不能为空"; } int rows = dt.Rows.Count; int cols = dt.Columns.Count; StringBuilder sb; string connString; if (rows == 0) ...{ return "没有数据"; } sb = new StringBuilder(); connString = string.Format(ConnectionString, excelPath); //生成创建表的脚本 sb.Append("CREATE TABLE "); sb.Append(dt.TableName + " ( "); for (int i = 0; i < cols; i++) ...{ if (i < cols - 1) sb.Append(string.Format("{0} varchar,", dt.Columns[i].ColumnName)); else sb.Append(string.Format("{0} varchar)", dt.Columns[i].ColumnName)); } using (OleDbConnection objConn = new OleDbConnection(connString)) ...{ OleDbCommand objCmd = new OleDbCommand(); objCmd.Connection = objConn; objCmd.CommandText = sb.ToString(); try ...{ objConn.Open(); objCmd.ExecuteNonQuery(); } catch (Exception e) ...{ return "在Excel中创建表失败,错误信息:" + e.Message; } 生成插入数据脚本#region 生成插入数据脚本 sb.Remove(0, sb.Length); sb.Append("INSERT INTO "); sb.Append(dt.TableName + " ( "); for (int i = 0; i < cols; i++) ...{ if (i < cols - 1) sb.Append(dt.Columns[i].ColumnName + ","); else sb.Append(dt.Columns[i].ColumnName + ") values ("); } for (int i = 0; i < cols; i++) ...{ if (i < cols - 1) sb.Append("@" + dt.Columns[i].ColumnName + ","); else sb.Append("@" + dt.Columns[i].ColumnName + ")"); } #endregion //建立插入动作的Command objCmd.CommandText = sb.ToString(); OleDbParameterCollection param = objCmd.Parameters; for (int i = 0; i < cols; i++) ...{ param.Add(new OleDbParameter("@" + dt.Columns[i].ColumnName, OleDbType.VarChar)); } //遍历DataTable将数据插入新建的Excel文件中 foreach (DataRow row in dt.Rows) ...{ for (int i = 0; i < param.Count; i++) ...{ param[i].Value = row[i]; } objCmd.ExecuteNonQuery(); } return "数据已成功导入Excel"; }//end using } }//end class}
转载地址:https://blog.csdn.net/lisong58420/article/details/2316415 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月30日 02时05分05秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
NetBeans配置Xdebug 远程调试PHP
2019-04-27
MediaWiki安装
2019-04-27
Squid安装
2019-04-27
如何查看当前Linux的版本
2019-04-27
Ubuntu安装Nginx
2019-04-27
Ubuntu 下安装thttpd Web服务器
2019-04-27
用thttpd做Web Server
2019-04-27
服务器端开发经验总结 Linux C语言
2019-04-27
将网站程序放在tmpfs下
2019-04-27
使用Nginx的proxy_cache缓存功能取代Squid
2019-04-27
nginx 反向代理,动静态请求分离,proxy_cache缓存及缓存清除
2019-04-27
nginx 的proxy_cache才是王道
2019-04-27
Nginx proxy_cache 使用示例
2019-04-27
Nginx源代码分析 - 日志处理
2019-04-27
使Apache实现gzip压缩
2019-04-27
Memcached在大型网站中应用
2019-04-27
Hadoop简要介绍
2019-04-27
squid中的X-Cache和X-Cache-Lookup的意义
2019-04-27
squid 优化指南
2019-04-27
centos vnc配置笔记
2019-04-27