ASP.NET数据列表导出为Excel
2013-03-05 09:37
253 查看
#region Excel定义 DateTime beforeTime = DateTime.Now; //实例化Excel全局(本地服务器) Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) { ResponseScript("无法创建Excel对象,可能您的电脑未安装Excel"); return; } DateTime afterTime = DateTime.Now; Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1 #endregion //构建数据 long totalCount = _nRecordCount;//行总数 int rindex = 0; AppCode.Excel.setRangHead(++rindex, "序号", 5, ref worksheet); AppCode.Excel.setRangHead(++rindex, "所属事项", 50, ref worksheet); AppCode.Excel.setRangHead(++rindex, "类别名称", 25, ref worksheet); //写入内容 List<M.VbsCategoryBook> exportlist = new B.VbsCategoryBook().GetList(name, treeid, departCode, order, 1, _nRecordCount, ref _nRecordCount); for (int r = 0; r < exportlist.Count; r++) { rindex = 0; M.VbsCategoryBook obj = exportlist[r] as M.VbsCategoryBook; AppCode.Excel.setRangCell(r + 2, ++rindex, (r + 1).ToString(), ref worksheet); AppCode.Excel.setRangCell(r + 2, ++rindex, returnCategory(obj.InfoItemid), ref worksheet); AppCode.Excel.setRangCell(r + 2, ++rindex, obj.Name, ref worksheet); } #region 保存下载 object missing = System.Reflection.Missing.Value;//定义一个missing string ExcelFileName = this.Page.Title + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"; //保存 workbook.SaveAs(Server.MapPath("http://www.cnblogs.com/Resources/DownFile/" + ExcelFileName), missing, missing, missing, missing, missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, missing, missing, missing, missing); workbook.Close(null, null, null); workbooks.Close(); xlApp.Application.Quit(); xlApp.Quit(); //释放进程及资源 System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook); System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); worksheet = null; workbook = null; xlApp = null; GC.Collect(); DateTime startTime; try { //强行释放最近打开的Excel进程 System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("EXCEL"); foreach (System.Diagnostics.Process myProcess in myProcesses) { startTime = myProcess.StartTime; if (startTime >= beforeTime && startTime <= afterTime) { myProcess.Kill(); } } } catch { } //将生成的文件提供给客户端 AppCode.Excel.ShowFileInClient(this.Page, Server.MapPath("http://www.cnblogs.com/Resources/DownFile/" + ExcelFileName)); #endregion
相关文章推荐
- ASP.NET数据列表导出为Excel
- asp.net C# 导出EXCEL数据
- asp.net导出数据到Excel的几种方法(3/3)
- asp.net导出数据到Excel的方法(完全无组件,不用调用Excel.exe)
- Asp.net导出Excel/Csv文本格式数据的方法
- Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- asp.net 导出数据到Excel模板分页
- ASP.NET DataSet数据生成Excel文档导出下载
- ASP.NET导出数据到Excel
- asp.net将控件或页面数据导出到Excel
- Asp.Net 导出数据格式为Excel 数据的9种方案
- asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
- Asp.Net MVC 使用FileResult导出Excel数据文件
- asp.net Linq把数据导出到Excel的代码
- ASP.Net数据导出Excel的几种方法
- .Net中导出数据到Excel(asp.net和winform程序中)
- Asp.Net中如何将数据导出到excel
- ASP.NET实现增删改查等功能(Access版)系统之六-导出数据到EXCEL
- ASP.net 把 DataGrid 数据导出到 Excel .
- asp.net中导出excel数据的方法汇总