ASP.NET操作excel报表模板方法
2010-09-21 15:49
555 查看
aps.net操作excel 现在网上也有很资料,但是没有太多是基本方法性的介绍,很少有总结性的,或者示例性的文章,小弟学习asp.net时间不长,有个项目正好用到asp.net实现对excel的操作,需要实现报表模板,我综合网上一些相关文章,献丑一下,呵呵,可能还有很多需要修改的地方,希望能够抛砖引玉。
操作excel需要添加Interop.Excel.dll的引用,只有机器上装了excel2003的就都会有这个,直接引用即可,
操作excel需要添加Interop.Excel.dll的引用,只有机器上装了excel2003的就都会有这个,直接引用即可,
DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.SqlConn, CommandType.StoredProcedure, "execel_select"); System.Data.DataTable dt = ds.Tables[0]; ds.Dispose(); //创建一个excel进程 Excel.Application app=new Excel.Application(); if (app == null) { return; } app.Visible = false; Workbooks workbooks = app.Workbooks; _Workbook workbook = workbooks.Add(Server.MapPath("paul.xls")); Sheets sheets = workbook.Worksheets; _Worksheet worksheet = (_Worksheet)sheets.get_Item(1); string drname=null; //GridView1.DataSource = dt.DefaultView; //GridView1.DataBind(); drname = dt.Rows[0][0].ToString(); int n=0,m=0,t=0; //先把数据全部写入到excel表格中 for (int j=0;j<dt.Columns.Count;j++) { for (int i=0;i<dt.Rows.Count;i++) { if (drname==dt.Rows[i][j].ToString()) { worksheet.Cells[3 + i, 1] = dt.Rows[i][0].ToString(); worksheet.Cells[3 + i, 2] = dt.Rows[i][1].ToString(); worksheet.Cells[3 + i, 3] = dt.Rows[i][2].ToString(); worksheet.Cells[3 + i, 4] = dt.Rows[i][3].ToString(); worksheet.Cells[3 + i, 5] = dt.Rows[i][4].ToString(); worksheet.Cells[3 + i, 6] = dt.Rows[i][5].ToString(); worksheet.Cells[3 + i, 7] = dt.Rows[i][6].ToString(); worksheet.get_Range(worksheet.Cells[3 + i, 1], worksheet.Cells[3 + i, 7]).Borders.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black); t++; m++; } //合并内容相同的单元格 else { drname = dt.Rows[i][j].ToString(); if (n<j) { worksheet.get_Range(worksheet.Cells[3 + dt.Rows.Count - m, j], worksheet.Cells[3 + dt.Rows.Count - 1, j]).Value2 = ""; worksheet.get_Range(worksheet.Cells[3 + dt.Rows.Count - m, j], worksheet.Cells[3 + dt.Rows.Count - 1, j]).Merge(Missing.Value); worksheet.get_Range(worksheet.Cells[3 + dt.Rows.Count - m, j], worksheet.Cells[3 + dt.Rows.Count - 1, j]).Value2 = dt.Rows[dt.Rows.Count - 1][j - 1].ToString(); n=j; } else { worksheet.get_Range(worksheet.Cells[3 + i-t, j + 1], worksheet.Cells[3 + i - 1, j + 1]).Value2=""; worksheet.get_Range(worksheet.Cells[3+i-t,j+1], worksheet.Cells[3 + i-1, j+1]).Merge(Missing.Value); worksheet.get_Range(worksheet.Cells[3 +i-t, j+1], worksheet.Cells[3 + i - 1, j+1]).Value2 = dt.Rows[i-1][j].ToString(); t = 1; } m = 1; } } t = 1; n=j; } ExcelOperate.SetHAlignCenter(worksheet, worksheet.Cells[1, 1], worksheet.Cells[dt.Rows.Count+2, dt.Columns.Count]); ExcelOperate.SetVAlignCenter(worksheet, worksheet.Cells[1, 1], worksheet.Cells[dt.Rows.Count + 2, dt.Columns.Count]); string save_path = Server.MapPath("xwn.xls") ; workbook.SaveAs(save_path, Missing.Value, Missing.Value, Missing.Value, Missing.Value,Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); ExcelOperate.Dispose(worksheet, workbook, app); Response.Write("执行完成!");
相关文章推荐
- asp.net中利用XML描述文件和Excel模板相结合的方法生成Excel报表
- Asp.net中操作Excel的权限解决方法
- asp.net 在IIS下操作Excel文件权限不足的解决方法
- asp.net 在IIS下操作Excel文件权限不足的解决方法
- asp.net 在IIS下操作Excel文件权限不足的解决方法
- asp.net 报表,填写Excel模板
- asp.net 在IIS下操作Excel文件权限不足的解决方法
- 用C#生成Excel文件的方法,Excel.dll组件生成的方法和设置用ASP.NET操作访问权限
- Asp.net操作Excel(终极方法NPOI)(转)
- asp.net(C#)套用模板操作Excel
- asp.net(C#)套用模板操作Excel
- ASP.NET环境下,VB.NET语言,数据保存EXCEL模板操作
- ASP.NET MVC 4.0 中使用NPOI 2.2.0 按模板生成Excel报表
- asp.net 操作服务器Excel后,关闭服务器Excel进程有效方法
- Asp.Net操作Excel的几种方法
- Asp.net操作Excel常用方法及属性
- 在ASP.net中,不引用第三方类库的、轻便的、将报表导出到Excel中的方法
- asp.net(C#)套用模板操作Excel
- asp.net(C#)套用模板操作Excel。
- ASP.NET之Excel下载模板、导入、导出操作