通常需要将后台数据库中的数据集或者是其他列表等导出excel 报表,这里主要引用了Apose.cells dll 类库,

(1)直接上主要代码:

protected void txtExport_Click(object sender, EventArgs e)         {

try             {

// 获取测试商品报表

IList<ProductEntity> pList = ProductBLL.getProductList();

// 导出到Excel中

Workbook workbook = new Workbook();

Worksheet sheet = workbook.Worksheets[0];

Cells cells = sheet.Cells;//单元格

for (int i = 0; i < 3; i++)        {

cells.SetColumnWidth(i, 20);

}

cells[1, 0].PutValue("商品序号");

cells[1, 1].PutValue("商品名称");

cells[1, 2].PutValue("描述");

for (int i = 0; i < pList.Count; i++)                 {

var p = pList[i];

cells[2 + i, 0].PutValue(p.Number);

cells[2 + i, 1].PutValue(p.Name);

cells[2 + i, 2].PutValue(p.Description);

}

string fileName = "商品列表报表" + DateTime.Now.ToString("yyyy.MM.dd.HH.mm.ss.ms") + ".xls";

string saveFileName = HttpContext.Current.Server.MapPath(@"\ExportFile\" + fileName);

workbook.Save(saveFileName);

Label1.Text = "导出报表成功!";

}

catch (Exception ex)             {

Label1.Text = "导出报表失败,原因:" + ex.Message;             }

}

(2)获取ProductList 的方法getProductList():

public static IList<ProductEntity> getProductList(){

IList<ProductEntity> productList = new List<ProductEntity>();

DataTable dt = ProductDAL.getProductList();

if(dt!=null && dt.Rows.Count>0)

{

productList =DatatableToObject.ConvertToList<ProductEntity>(dt);

}

return productList;

}

(3) 顺便介绍比较实用用的DataToObject.ConvertToList<T>() 方法,可以直接将从数据库中读取的DataTable 转化成列表List<T>,

最近才在上面写文章,不会自动对齐格式哈。

public class DatatableToObject     {

public static T ConvertToObject<T>(DataRow row) where T : new()         {

System.Object obj = new T();

if (row != null)             {

DataTable dataTable = row.Table;

GetObject(dataTable.Columns, row, obj);

}

if (obj != null && obj is T)             {

return (T)obj;

}

else             {

return default(T);

}

}

private static void GetObject(DataColumnCollection cols, DataRow dr, System.Object obj)

{             Type type = obj.GetType();

PropertyInfo[] pros = type.GetProperties();

foreach (PropertyInfo pro in pros)             {

if (cols.Contains(pro.Name))

{

if ((pro.PropertyType).Name.ToLower() == "string")

pro.SetValue(obj, dr[pro.Name] == DBNull.Value ? "" : dr[pro.Name].ToString(), null);

else

pro.SetValue(obj, dr[pro.Name] == DBNull.Value ? null : dr[pro.Name], null);

}

}

}

public static List<T> ConvertToList<T>(DataTable dataTable) where T : new()

{       List<T> list = new List<T>();

foreach (DataRow row in dataTable.Rows)             {

T obj = ConvertToObject<T>(row);

list.Add(obj);             }

return list;

}

}

(4) 部分运行截图:

从数据库中导出excel报表的更多相关文章

  1. 从oracle数据库中导出excel问题导致乱码的问题

    使用plsqldev工具将oracle的查询结果导出为excel,结果可以成功导出,但是使用libreoffice进行查看时,有好多记录都是空的. 使用python进行导出(openpyxl模块进行e ...

  2. 用BCP从SQL Server 数据库中导出Excel文件

    BCP(Bulk Copy Program)是一种简单高效的数据传输方式在SQL Server中,其他数据传输方式还有SSIS和DTS. 这个程序的主要功能是从数据库中查询Job中指定step的执行信 ...

  3. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  4. Atitit.导出excel报表的设计与实现java .net php 总

    Atitit.导出excel报表的设计与实现java .net php 总结 1. 导出报表 表格的设计要素1 1.1. 支持通用list<Map>转换1 1.2. 对于空列是否输出1 1 ...

  5. Atitit.导出excel报表的设计与实现java .net php 总结

    Atitit.导出excel报表的设计与实现java .net php 总结 1. 导出报表 表格的设计要素1 1.1. 支持通用list<Map>转换1 1.2. 对于空列是否输出1 1 ...

  6. asp.net中导出Excel的方法

    一.asp.net中导出Excel的方法: 本文转载 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出 ...

  7. poi导出Excel报表多表头双层表头、合并单元格

    效果图: controller层方法: /**     *      * 导出Excel报表     * @param request     * @return     *      */    @ ...

  8. java导出excel报表

    1.java导出excel报表: package cn.jcenterhome.util; import java.io.OutputStream;import java.util.List;impo ...

  9. 根据模板导出Excel报表并生成多个Sheet页

    因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为  根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...

随机推荐

  1. UVA 12549 - 二分图匹配

    题意:给定一个Y行X列的网格,网格种有重要位置和障碍物.要求用最少的机器人看守所有重要的位置,每个机器人放在一个格子里,面朝上下左右四个方向之一发出激光直到射到障碍物为止,沿途都是看守范围.机器人不会 ...

  2. Java(五)

    ♥作业1: 显示指定路径所有文件及实现文件筛选.智能监控,程序能自动在下拉菜单生成任意路径下文件所有尾缀.  代码内注释内容为步骤与整体思路  import java.awt.BorderLayout ...

  3. JavaScript设计模式学习笔记

    1 JavaScript设计模式深入分析 私有属性和方法:函数有作用域,在函数内用var 关键字声明的变量在外部无法访问,私有属性和方法本质就是你希望在对象外部无法访问的变量. 特权属性和方法:创建属 ...

  4. mysql查询语句中用户变量的使用

    先上代码吧 SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice ...

  5. ReportViewer中修改rdlc图表中显示的数据

    将rdlc以xml的格式打开,修改里面的数据,实现方式如下: public MemoryStream GenerateRdlc()    { XmlDocument xmlDoc = new XmlD ...

  6. S2SH+mysql-软件开发实际部署问题-8个小时后提示MYSQL数据库无法连接

    type Exception report message description The server encountered an internal error () that prevented ...

  7. CSS外边距margin上下元素重叠

    CSS外边距margin上下元素重叠 转载:http://www.gaoyouyou.com/view/77.htm 两个或多个块级盒子的垂直相邻边界会重合.结果的边界宽度是相邻边界宽度中最大的值.如 ...

  8. OpenGL的学习资源

    OpenGL是3D图形接口工业标准,使用上非常简单,所有API不过上百个函数,但理解OpenGL就没那么简单,本文总结OpenGL的学习资源,包括官方资料.网上教程.示例程序等. Wikipedia: ...

  9. MySQL, 创建一个只读用户和一个所有权限用户

    安装pasa需要配置mysql.基本知识学习一下 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html MySQL 为关系型数据库 ...

  10. ICTCLAS 汉语词性标注集

    以前使用jieba分词时,并没有注意到词性标注集到底包含哪些,刚好最近学习自然语言处理,涉及到分词以及词性标注,将ICTCLAS 词性标注集记录如下: ICTCLAS 汉语词性标注集 代码 名称 帮助 ...