社区
C#
帖子详情
C#导出excel,固定模板问题
kamYee
2013-12-11 02:31:43
现在要导出一个excel,但是模板是之前做好的,我想吧数据直接追加在excel后面,格式还是按照模板格式,
...全文
401
8
打赏
收藏
C#导出excel,固定模板问题
现在要导出一个excel,但是模板是之前做好的,我想吧数据直接追加在excel后面,格式还是按照模板格式,
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ade150
2016-02-25
打赏
举报
回复
怎么实现能教一下吗?我刚好也碰到了
F12578626
2015-03-08
打赏
举报
回复
楼主是怎么解决的呢?我现在也碰到了这个问题
kamYee
2014-02-24
打赏
举报
回复
谢谢大家,我自己找到解决办法了
以专业开发人员为伍
2013-12-15
打赏
举报
回复
“按照模板格式”,也就是说模板的格式改变了那么输出的结果也就改变。 一定不是写死什么 oSheet.Cells[2, 5] 之类的。
terrence1106
2013-12-15
打赏
举报
回复
希望对你有用 using System.Reflection; //MISSIN using Microsoft.Office.Interop.Excel; //APP using System.Diagnostics; using System.IO; using System.Xml; using System.Data.SqlClient; public void outputExcel(System.Data.DataTable dataTable, string templateName) { string url = ""; //获取template文件夹路经,UserExcel.aspx和template文件夹在同一父目录下 string Path = this.GetFileFolder("OutExcel.aspx") + "template//"; string XmlPath = Path; //使用excel Application app = new Application(); Process[] pro = Process.GetProcessesByName("EXCEL"); int proID = pro[pro.Length - 1].Id; app.DisplayAlerts = false; try { //打开模板 string fileName = XmlPath + templateName + ".xlt"; object template_p = fileName; object newTemplate_p = false; object visible_p = true; object updateLink_p = Missing.Value; object ReadOnly_p = false; object Format_p = Missing.Value; object password = ""; object Writepassword = ""; object Recommended_p = Missing.Value; object Origin_p = 2; object Delimitit_p = Missing.Value; object Editable_p = true; object Notify_p = Missing.Value; object Converter_p = Missing.Value; object AddToMru_p = Missing.Value; object local_p = Missing.Value; object corruptload_p = Missing.Value; Microsoft.Office.Interop.Excel._Workbook wc = app.Workbooks._Open(fileName, updateLink_p, ReadOnly_p, Format_p, password, Writepassword, Recommended_p, Origin_p, Delimitit_p, Editable_p, Notify_p, Converter_p, AddToMru_p); //定位sheet _Worksheet oSheet = (_Worksheet)wc.Worksheets[1]; switch (templateName) { case "TraficAcciStatMonthReport": oSheet.Cells[2, 5] = dataTable.Rows[0]["ReportMonth"].ToString();// 报表月份 //oSheet.Cells[7, 2] = dataTable.Rows[0]["AccidentNum"].ToString();// 本月事故起数 //oSheet.Cells[8, 2] = dataTable.Rows[0]["AccidentSum"].ToString();// 本月事故起数 oSheet.Cells[7, 2] = dataTable.Rows[0]["DeathAcciNum"].ToString();// 本月事故起数 oSheet.Cells[8, 2] = dataTable.Rows[0]["DeathAcciSum"].ToString(); oSheet.Cells[7, 3] = dataTable.Rows[0]["PreDeathAcciNum"].ToString(); oSheet.Cells[8, 3] = dataTable.Rows[0]["PreDeathAcciSum"].ToString(); break; } //templateName //保存文件 System.Random rand = new System.Random(); int a = rand.Next(); string ss = a.ToString(); string pathStr; pathStr = XmlPath.Remove(XmlPath.Length - 1, 1); int position = pathStr.LastIndexOf("\\"); pathStr = pathStr.Remove(position + 1, pathStr.Length - position - 1); pathStr = pathStr + "trush\\"; object fileName_p = pathStr + ss + ".xls"; ; object fileFormat_p = Missing.Value; object password_p = Missing.Value; object writePassword_p = Missing.Value; XlSaveAsAccessMode readOnlyRecommended_p = new XlSaveAsAccessMode(); object CreateBackup_p = Missing.Value; Microsoft.Office.Interop.Excel.XlSaveAsAccessMode accessmode_p = new XlSaveAsAccessMode(); object conflictResolutuin = Missing.Value; object addtoMru_p = Missing.Value; object Textcode_p = Missing.Value; object textVisuall_p = Missing.Value; wc._SaveAs(fileName_p, fileFormat_p, password, writePassword_p, readOnlyRecommended_p, CreateBackup_p, accessmode_p, conflictResolutuin, addtoMru_p, Textcode_p, textVisuall_p); ///关闭模板 object saveChanges_p = Missing.Value; object originalFormat_p = Missing.Value; object routeDocument_p = Missing.Value; wc.Close(saveChanges_p, originalFormat_p, routeDocument_p); app.Quit(); app = null; wc = null; if (proID != 0) KillallTimer(proID); //url = this.Request.Url.ToString();// ;//.AbsoluteUri; url = this.Request.Url.AbsoluteUri; url = url.Substring(0, url.Length - "OutExcel.aspx".Length) + "trush\\"; //url = url + "trush\\"; url = url + ss + ".xls"; Response.Write(@"<script language=javascript>window.close();window.open('" + url.Replace("\\", "/") + "')</script>"); } catch (Exception ex) { Response.Write(ex.ToString()); if (proID != 0) KillallTimer(proID); } } private void KillallTimer(int ProcessID) { try { GC.Collect(); System.Diagnostics.Process[] pw = System.Diagnostics.Process.GetProcessesByName("WINWORD"); for (int i = 0; i < pw.Length; i++) { System.IntPtr c = pw[i].MainWindowHandle; if (c.ToInt32() == 0) { if (pw[i].Id == ProcessID) { pw[i].Kill(); } } } GC.Collect(); } catch { GC.Collect(); } }
以专业开发人员为伍
2013-12-15
打赏
举报
回复
什么“模板格式”?
kamYee
2013-12-15
打赏
举报
回复
自己顶
kamYee
2013-12-11
打赏
举报
回复
没人嘛
C#
导出
利用
模板
,映射文件
导出
复杂
excel
C#
导出
Excel
的方式多种多样,常见的库有EPPlus、NPOI、 ClosedXML等。EPPlus是一个用于读写
Excel
2007/2010 xlsx/xlsm/xltx/xltm文件的.NET库,它支持创建、修改和操作
Excel
文件。NPOI是针对.NET平台的Apache POI库...
C#
将数据
导出
到
excel
模板
自定义字段
本主题聚焦于如何利用
C#
将数据
导出
到
Excel
模板
,并自定义字段,这是一个常见的需求,尤其是在数据分析、报告生成和数据共享的场景中。 在
C#
中,我们可以利用各种库来操作
Excel
,如EPPlus、NPOI或Microsoft.Office....
C#
(dataGridView按
Excel
模板
导出
)控件
在这个特定的场景中,我们讨论的是如何利用
C#
中的dataGridView控件来实现一个功能,这个功能允许用户按照自定义的
Excel
模板
导出
数据。这涉及到对dataGridView控件的操作,以及将数据转换为
Excel
格式的技术。 首先,...
C#
导出
EXCEL
C#
导出
EXCEL
C#
导出
EXCEL
下面我们将深入探讨
C#
导出
Excel
的原理、方法和常见实践。 首先,
C#
导出
Excel
主要有两种方式:使用Microsoft Office Interop库(需在运行环境中安装Office)或使用第三方库。前者直接操作
Excel
应用程序对象模型,而...
使用aspose
导出
Excel
(根据
模板
导出
excel
).zip
在使用Aspose
导出
Excel
时,
模板
通常是一个预先设计好的
Excel
文件,其中包含了
固定
的格式、样式和占位符。这些占位符将被程序中的动态数据替换。例如,你可以有一个
模板
包含一个表格,其中某些单元格内有"{0}"这样的...
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章