C# 导出数据到Excel模板中
2012-05-26 15:11
453 查看
今天做报表的时候遇到了多表头的问题,而且相应的报表的格式都一样。所以就采用了报表模板的方式来进行。
第一步:在开发的当前项目中引入:Microsoft.Office.Interop.Excel;System.Reflection;命名空间。
第二步:获取要导出的数据;
第三步:创建一个Excel 应用程序:
如果,app = null ,则代表服务器上“服务器上缺少Excel组件,需要安装Office软件”;
第四步:设置app属性,及其进行如下操作:
第五步:根据获得的数据,进行数据的插入(到Excel模板中);
第六步:设置已导入的数据的样式:
第七步:对已导出好的Excel报表进行保存到服务器,以便进行下载。
详细请看源码
第一步:在开发的当前项目中引入: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);
详细请看源码
相关文章推荐
- 一个很好的用C#导出数据到Excel模板的方法
- C#导出Excel|导出数据到Excel模板文件里
- c# 导出数据到Excel模板
- C# 导出数据到Excel模板中
- C#导出数据至excel模板
- C#导出数据到Excel模板and如何画Excel模板并导出数据,导入excel数据
- C# 实现Excel导出 加载模板 导入数据到模板
- [转]C# 导出数据到Excel模板中
- c#导出数据至excel模板中,可分页
- C#实现Excel模板导出和从Excel导入数据
- C# 简单将数据导出到Excel模板流程
- c# 导出table中的数据到模板excel中
- C#导出数据的EXCEL模板设计
- C# 导出数据到Excel模板中
- C# Winform Excel的导出,根据excel模板导出数据
- 在C#中导出数据到Excel
- C#操作Excel,将DataGridView数据导出到Excel中
- C# winform DataGridView导出数据到Excel中,可以导出当前页和全部数据;从Excel导入到DataGridView[转http://yuunagi.blogbus.com/logs/38361242.html]
- C# 将数据导出到Excel汇总
- [转]asp.net导出Excel/Csv格式数据最优方案(C#)