Asp.net导出Excel续章(自定义合并单元格,非Office组件)

结合上次写的导出Excel方法,这次上头要求我将列头进行一下合并

以前的效果:

 

改进后的效果:

 

在上篇文章中写到了Excel的导出方法,这次为了避免在生产环境中使用Office组件,服务器各种权限配置的麻烦,这次就不使用Office组件来生成Excel了。

上篇文章:Asp.net导出Excel(HTML输出)

关键代码如下图:

 

说道这里,其实主要思路已经很明显了。

在数据绑定结束后,重新绘制表头替换掉原来的表头就行了。

TableCell自定义表头的时候是table标签的,很方便。

 

另外发现了一个小技巧:

我使用Office Excel 2013 绘画好表头,然后直接复制,在Macromedia Dreamweaver 8的设计面板粘贴就可以贴上去了,然后转到代码页面就可以快速得到table代码。

最后贴上这几句代码:

1 gvw.HeaderRow.Cells.Clear();
2 TableCell tc = new TableCell();
3 //重新绘制表头
4 tc.Text = "<tr> ...... </tr>";
5 gvw.HeaderRow.Cells.Add(tc);
重绘表头

 

另外,看见博友推荐我使用NPOI.HSSF.Util组件,听说很操作很方便。这里也推荐啦!

//- 创建 Excel
   HSSFWorkbook hssfworkbook = new HSSFWorkbook();
   //- 创建 Sheet
   var sheet = hssfworkbook.CreateSheet("淘汰选项报表");
 
   //- Sheet 里的每一个 Row
   NPOI.SS.UserModel.Row row;
   //- 创建一个“绘画器”,这个绘画器用于所有的图片写入。
   //- 请注意,是所有的图片,不可一张图片创建一个!否则将导致没有图片
   var patriarch = sheet.CreateDrawingPatriarch();
 
   //- 默认单元格的样式以及字体,是“Excel 级”的,如果对其进行设置,将导致所有的单元格都是这些字体以及样式
   //- 创建一个新的字体以及样式,可以确保这些“单元格”独立的字体与样式。
   //- 这里是创建一个标题的样式
   var cellFont = hssfworkbook.CreateFont();
   var cellStyle = hssfworkbook.CreateCellStyle();
 
   //- 加粗,白色前景色
   cellFont.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.BOLD;
   cellFont.Color = NPOI.HSSF.Util.HSSFColor.WHITE.index;
 
   //- 很费解 FillForegroundColor 这个属性,我设置了是背景色,可从字义上来说,这个似乎叫“前景色”?
   //- 更令人无语的是,还有 FillBackgroundColor 属性。真不知道做什么的。
   cellStyle.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.GREY_40_PERCENT.index;
   //- 这个是填充的模式,可以是网格、花式等。如果需要填充单色,请使用:SOLID
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值