自己在看到网上一些table数据导出excel,自己为自己记录一下以免以后需要
2016-10-13 21:54
561 查看
需要自己去查到数据库的表格
直接调用方法 (需要电脑上安装有excel表格程序,否则导出失败:个人猜测)
直接调用方法 (需要电脑上安装有excel表格程序,否则导出失败:个人猜测)
protected void Button1_Click(object sender, EventArgs e) { ajaxService ajax = new ajaxService(); DataTable dt = ajax.SearchEmployees1(); Guid guid = Guid.NewGuid(); string stamp = guid.ToString("N"); string path = "~/Fileupimage/axb.xls"; ExportToExcel(dt, Server.MapPath(path)); } #region 导出Excel表 /// /// 将DataTable或DataSet导出为Excel /// 修改 2016/7/6 /// /// 需要导出的DataTable,DataSet或GridView /// Excel的绝对路径 /// 是否成功 public bool ExportToExcel(System.Data.DataTable dt, string AbosultedFilePath) { if (dt == null) return false; // 创建Excel应用程序对象 Microsoft.Office.Interop.Excel.Application excApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workBook = excApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Worksheet workSeet = workBook.Worksheets[1]; //取得sheet1 Microsoft.Office.Interop.Excel.Range range = null; int tableCount = dt.Rows.Count; int rowRead = 0; float percent = 0; for (int i = 0; i < dt.Columns.Count; i++) { workSeet.Cells[1, i + 1] = dt.Columns[i].ColumnName; //设置标题的样式 range = (Microsoft.Office.Interop.Excel.Range)workSeet.Cells[1, i + 1]; range.Font.Bold = true; //粗体 range.Font.Size = "12";//字体大小 range.Font.Name = "宋体"; range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; //居中 range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null); //背景色 range.EntireColumn.AutoFit(); //自动设置列宽 range.EntireRow.AutoFit(); //自动设置行高 } for (int r = 0; r < dt.Rows.Count; r++) { for (int c = 0; c < dt.Columns.Count; c++) { //写入内容 workSeet.Cells[r + 2, c + 1] = "'" + dt.Rows[r][c].ToString(); //设置样式 range = (Microsoft.Office.Interop.Excel.Range)workSeet.Cells[r + 2, c + 1]; range.Font.Size = 9; //字体大小 range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null); //加边框 range.EntireColumn.AutoFit(); //自动调整列宽 } rowRead++; percent = ((float)(100 * rowRead)) / tableCount; //System.Windows.Forms.Application.DoEvents(); } range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideHorizontal].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; if (dt.Columns.Count > 1) { range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideVertical].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; } try { workBook.Saved = true; workBook.SaveCopyAs(AbosultedFilePath); string fileName = "axb.xls";//客户端保存的文件名 //此处实现下载功能 FileInfo fileInfo = new FileInfo(AbosultedFilePath); Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.AddHeader("Content-Transfer-Encoding", "binary"); Response.ContentType = "application/octet-stream"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); Response.WriteFile(fileInfo.FullName); Response.Flush(); Response.End(); } catch { } workBook.Close(); if (excApp != null) { excApp.Workbooks.Close(); excApp.Quit(); int generation = System.GC.GetGeneration(excApp); System.Runtime.InteropServices.Marshal.ReleaseComObject(excApp); excApp = null; System.GC.Collect(generation); } GC.Collect(); //强行销毁 #region 强行杀死最近打开的Excel进程 System.Diagnostics.Process[] excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL"); System.DateTime startTime = new DateTime(); int m, killID = 0; for (m = 0; m < excelProc.Length; m++) { if (startTime < excelProc[m].StartTime) { startTime = excelProc[m].StartTime; killID = m; } } if (excelProc[killID].HasExited == false) { excelProc[killID].Kill(); } #endregion return true; } #endregion
相关文章推荐
- 参考网上的一些struts2的action用法,自己写了一个Demo记录一下。
- 从网上看到一些文章,自己再总结一下,在学习编程中一些要点
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- 整理了一下网上关于选购笔记本的小窍门,自己做个记录,备用
- 在网上看到一篇文章 安慰一下自己孤寂的心灵
- javascript 导出数据到Excel(处理table中的元素)
- Excel表的一些数据应用(导入,导出)
- c# 导出table中的数据到模板excel中
- 让人郁闷了好久的问题,终于解决了,之前网上也看到一些解决方法,但大多没有解决问题,所以记录下来,以供参考之用(ADO Could Not Find The Specified Provider)
- 将Table数据导出至Excel文件(中国移动实现的方式)
- 20100902 学习记录:GridView中的数据导出为Excel
- 将Table数据导出至Excel文件(中国移动实现的方式)
- 记录一下懒惰的自己,以后别犯这种错了
- 总结一下最近一段时间导出数据到Excel的几种方法
- 将Table数据导出至Excel文件(中国移动实现的方式)
- 网上看到的jsp操作excel和日期提醒的一些东西
- 由于自己开发的项目需要正则表达式,这里记录一下,以便查阅
- 总结一下最近一段时间导出数据到Excel的几种方法
- 从国外某著名DNN 知情人士 Nina's Blog上看到一些有用的文章,在此记录一下,也为国内DNN,问题搜索,出一点力
- 虚拟机中Solaris 10和主机之间建立共享文件夹(好不容易弄出来的,记录一下以免以后忘了vv)