内容摘要 -
全文 -
将DataGrid内容生成标准的Excel格式电子表格文件具体步骤代码
用传统的导出方法:只是将DataGrid信息用html输出,文件名后辍是.xls而已。 如果想将这个方法导入到Sql Server 中,会提示出错。因为它不是标准的Excel格式文件。
用本例中的导出方法:会输出标准的Excel格式文件,非常稳定,不会死锁Excel进程,支持中文文件名,支持表头导出, 支持大多数数据库导入。 实现算法:
利用Excel组件将DataGrid控件内容生成Excel临时文件,并存放在服务器上,然后用Response方法将生成的Excel文件下载到客户
端然后再将生成的临时文件删除。
具体步骤: 1.在项目中引用Excel组件 Interop.Excel.dll 文件版本1.3.0.0 2.项目中应有一个目录(本例中Template目录),以便存放Excel文件(名字自己定) 3.导入方法类 protected void ExportToExcel(System.Web.UI.WebControls.DataGrid grid,string fileName) { string templetFilePath; templetFilePath = Server.MapPath("../").ToString() + @"Template\"; object missing = Missing.Value; Excel.Application app; Excel.Workbook workBook; Excel.Worksheet workSheet; Excel.Range range;
//创建一个Application对象并使其不可见 app = new Excel.ApplicationClass(); app.Visible=false;
//打开模板文件,得到WorkBook对象 //workBook = app.Workbooks.Open(templetFilePath + "SuperTemplet.xls", missing, missing, missing,
missing, missing, // missing, missing, missing, missing, missing, missing, missing);
//创建一个WorkBook对象 workBook = app.Workbooks.Add(missing); //得到WorkSheet对象 workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1);
int rowCount = grid.Items.Count + 1; //DataTable行数+GirdHead(因为DataGrid头还有一例所以得加1) int colCount = grid.Columns.Count;//DataTable列数
//利用二维数组批量写入
|