ORM映射框架总结--Excel 操作

简介:   在很多时候,我们需要将查询的数据做成报表统计,然后生成Excel文档格式的。再此提供了将DataTable 数据导出excel 的方法   代码   1 /**  2  *   3  * 2009-5-2  4  *   5  *   6  * 将DataTable导出为excel文件  7  * */  8 using System;  9 using System.

  在很多时候,我们需要将查询的数据做成报表统计,然后生成Excel文档格式的。再此提供了将DataTable 数据导出excel 的方法

 

img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
  1  /* *
  2   * 
  3   * 2009-5-2
  4   * 
  5   * 
  6   * 将DataTable导出为excel文件
  7   *  */
  8  using  System;
  9  using  System.Collections.Generic;
 10  using  System.Linq;
 11  using  System.Text;
 12  using  System.Data;
 13  using  System.Web;
 14  using  System.Web.Security;
 15  using  System.Web.UI;
 16  using  System.Web.UI.HtmlControls;
 17  using  System.Web.UI.WebControls;
 18  using  System.Web.UI.WebControls.WebParts;
 19  using  System.IO;
 20  using  Excel = Microsoft.Office.Interop.Excel;
 21 
 22  namespace  CommonData.Application
 23  {
 24       public   class  DataExcel
 25      {
 26           ///   <summary>
 27           ///  datatable导出为excel
 28           ///   </summary>
 29           ///   <param name="table"> table 实例 </param>
 30           public   void  ExportExcelStream(DataTable table,  string  filepath)
 31          {
 32              StringWriter stringWriter  =   new  StringWriter();
 33              HtmlTextWriter htmlWriter  =   new  HtmlTextWriter(stringWriter);
 34              DataGrid excel  =   new  DataGrid();
 35              System.Web.UI.WebControls.TableItemStyle AlternatingStyle  =   new  TableItemStyle();
 36              System.Web.UI.WebControls.TableItemStyle headerStyle  =   new  TableItemStyle();
 37              System.Web.UI.WebControls.TableItemStyle itemStyle  =   new  TableItemStyle();
 38              AlternatingStyle.BackColor  =  System.Drawing.Color.LightGray;
 39              headerStyle.BackColor  =  System.Drawing.Color.LightGray;
 40              headerStyle.Font.Bold  =   true ;
 41              headerStyle.HorizontalAlign  =  System.Web.UI.WebControls.HorizontalAlign.Center;
 42              itemStyle.HorizontalAlign  =  System.Web.UI.WebControls.HorizontalAlign.Center; ;
 43 
 44              excel.AlternatingItemStyle.MergeWith(AlternatingStyle);
 45              excel.HeaderStyle.MergeWith(headerStyle);
 46              excel.ItemStyle.MergeWith(itemStyle);
 47              excel.GridLines  =  GridLines.Both;
 48              excel.HeaderStyle.Font.Bold  =   true ;
 49              excel.DataSource  =  table.DefaultView;    // 输出DataTable的内容
 50              excel.DataBind();
 51              excel.RenderControl(htmlWriter);
 52 
 53               string  filestr  =  filepath;
 54               int  pos  =  filestr.LastIndexOf( " \\ " );
 55               string  file  =  filestr.Substring( 0 , pos);
 56               if  ( ! Directory.Exists(file))
 57              {
 58                  Directory.CreateDirectory(file);
 59              }
 60              System.IO.StreamWriter sw  =   new  StreamWriter(filestr);
 61              sw.Write(stringWriter.ToString());
 62              sw.Close();
 63          }
 64 
 65           ///   <summary>
 66           ///  将DataTable 导出为excel文件格式
 67           ///   </summary>
 68           ///   <param name="table"> DataTable </param>
 69           ///   <param name="filepath"> 保存文件路径 </param>
 70           public   void  ExportExcelOffice(DataTable table,  string  filepath)
 71          {
 72              
 73              Excel.Application excel  =   new  Microsoft.Office.Interop.Excel.Application();
 74              excel.Visible  =   false ;
 75               object  ms  =  Type.Missing;
 76              Excel.Workbook wk  =  excel.Workbooks.Add(ms);
 77              Excel.Worksheet ws  =  wk.Worksheets[ 1 as  Excel.Worksheet;
 78               for ( int  i = 0 ;i < table.Columns.Count;i ++ )
 79              {
 80                  ws.Cells[ 1 , i  +   1 =  table.Columns[i].ColumnName;
 81              }
 82               for ( int  i = 0 ;i < table.Rows.Count;i ++ )
 83              {
 84                   for ( int  j = 0 ;j < table.Columns.Count;j ++ )
 85                  {
 86                      ws.Cells[i  +   2 , j  +   1 =  table.Rows[i][j].ToString();
 87                  }
 88              }
 89 
 90               if (File.Exists(filepath) == false )
 91              {
 92                  Directory.CreateDirectory(filepath);
 93              }
 94              wk.SaveAs(filepath, ms, ms, ms, ms, ms, Excel.XlSaveAsAccessMode.xlShared, ms, ms, ms, ms, ms);
 95              excel.Quit();
 96              
 97          }
 98      }
 99  }
100 
101 

 

 

  这里提供了两种方式来导出DataTable 中的数据。第一种是采用流的方式写入,第二种是系统提供的Office操作API,这个可以很好的操作Office文档。

  DataTable table  是要导出Excel 文件的数据源

  string filepath    是文件要保存的路径

 

  

相关文章
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
105 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
5月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
6月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
92 0
Excel如何使用VBA操作引用其它工作簿中的单元格
Excel引用其它工作簿中的单元格的值及使用VBA操作
|
6月前
|
Python
【干货】python xlwt写入excel操作
【干货】python xlwt写入excel操作
|
6月前
|
前端开发
react框架对Excel文件进行上传和导出
react框架对Excel文件进行上传和导出
|
6月前
|
图形学
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
235 0
|
6月前
|
前端开发 Java 开发工具
如何在Spring Boot框架下实现高效的Excel服务端导入导出?
ArtifactId:是项目的唯一标识符,在实际开发中一般对应项目的名称,就是项目根目录的名称。 Group Id,Artfact Id是保证项目唯一性的标识,一般来说如果项目打包上传至maven这样的包管理仓库中。在搜索你的项目时,Group Id,Artfact Id是必要的条件。 Version:版本号,默认0.0.1-SNAPSHOT。SNAPSHOT代表不稳定的版本,与之相对的有RELEASE。 Project type:工程的类型,maven工程还是gradle工程。 Language:语言(Java,Kotlin,Groovy)。
|
6月前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之在本地用tunnel命令上传excel表格到mc遇到报错: tunnel upload C:\Users***\Desktop\a.xlsx mc里的非分区表名 -s false;该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
7月前
|
数据挖掘 数据库连接 数据处理
精通Excel意味着熟练掌握基础及进阶操作
精通Excel意味着熟练掌握基础及进阶操作,如数据透视表、VBA编程和自定义公式。提升效率的技巧包括善用快捷键、自动化重复任务、巧用公式与函数(如SUM和VLOOKUP)、利用数据透视表分析数据、设置条件格式、建立数据库连接、编写自定义函数、创建数据图表、使用模板和进行分组汇总。这些方法能有效提升数据分析和处理能力,优化工作效率。
200 2