博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 导出数据到Excel模板中(转)
阅读量:5894 次
发布时间:2019-06-19

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

今天做报表的时候遇到了多表头的问题,而且相应的报表的格式都一样。所以就采用了报表模板的方式来进行。

第一步:在开发的当前项目中引入:Microsoft.Office.Interop.Excel;System.Reflection;命名空间。

第二步:获取要导出的数据;

第三步:创建一个Excel 应用程序:

//需要添加 Microsoft.Office.Interop.Excel引用   Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();

如果,app = null ,则代表服务器上“服务器上缺少Excel组件,需要安装Office软件”;

第四步:设置app属性,及其进行如下操作:

app.Visible = false;  app.UserControl = true;  Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks;  Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(Server.MapPath("~/Template.xlsx")); //加载模板  Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets;  Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄。  if (worksheet == null)      return;  //工作薄中没有工作表.

第五步:根据获得的数据,进行数据的插入(到Excel模板中);

//写入数据,Excel索引从1开始。            for (int i = 1; i <= rowCount; i++)            {                int row_ = 2 + i;  //Excel模板上表头和标题行占了2行,根据实际模板需要修改;                int dt_row = i - 1; //dataTable的行是从0开始的。                 worksheet.Cells[row_, 1] = i.ToString();                worksheet.Cells[row_, 2] = dt.Rows[dt_row]["姓名"].ToString();                worksheet.Cells[row_, 3] = dt.Rows[dt_row]["学号"].ToString();            }

第六步:设置已导入的数据的样式:

//调整Excel的样式。            Microsoft.Office.Interop.Excel.Range rg = worksheet.Cells.get_Range("A3", worksheet.Cells[rowCount + 2, 8]);            rg.Borders.LineStyle = 1; //单元格加边框。            worksheet.Columns.AutoFit(); //自动调整列宽。

第七步:对已导出好的Excel报表进行保存到服务器,以便进行下载。

//Missing 在System.Reflection命名空间下。            string savaPath = "~/Temp/T1_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";            workbook.SaveAs(Server.MapPath(savaPath), Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

 

转载于:https://www.cnblogs.com/yellowcool/p/7447567.html

你可能感兴趣的文章
JavaScript获取DOM元素位置和尺寸大小
查看>>
EL 表达式小结
查看>>
内部排序
查看>>
jQuery EasyUI API 中文文档 - 组合(Combo)
查看>>
10个关于 Dropbox 的另类功用(知乎问答精编)[还是转来了]
查看>>
Oracle体系结构
查看>>
用Modelsim仿真QII FFT IP核的时候出现的Error: Illegal target for defparam
查看>>
javascript Error对象详解
查看>>
nc 局域网聊天+文件传输(netcat)
查看>>
每天一个linux命令(25):linux文件属性详解
查看>>
go微服务框架go-micro深度学习(三) Registry服务的注册和发现
查看>>
python 重载方法有哪些特点 - 老王python - 博客园
查看>>
在Fedora8上安装MySQL5.0.45的过程
查看>>
设计模式之命令模式
查看>>
android 测试 mondey
查看>>
Spring AOP项目应用——方法入参校验 & 日志横切
查看>>
使用REST-Assured对API接口进行自动化测试
查看>>
王潮歌跨界指导HUAWEI P20系列发布会 颠覆传统 眼界大开!
查看>>
王高飞:微博已收购一直播 明年一季度重点是功能与流量打通
查看>>
趣头条发行区间7至9美元 预计9月14日美国上市
查看>>