以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请教怎么让Excel报表模板在生成报表是自动隐藏空值列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48966)

--  作者:cxonline
--  发布时间:2014/4/9 21:05:00
--  [求助]请教怎么让Excel报表模板在生成报表是自动隐藏空值列

因为我们的工资表项目太多了,很多项目的金额都是空的,

所以想设计模板时将所有项目都做进去,但是生成的时候自动把空值的列都隐藏,

举例说明 见下表

 

  姓名   优秀员工   加班费    餐费补助    社保    合计   
 张三      50        60        110
   李四    60  50              110
   王五    30      100          130

生成报表时 自动省略"社保"列

目的是 如果显示太多列  报表就必须缩放打印 作为工资发放条不够美观

 

已经看过帮助和百度 都没有提到可以自动隐藏的教程

故求助于此 望能解答

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工资.xls


--  作者:cxonline
--  发布时间:2014/4/9 21:07:00
--  
对了 隐藏列以后不希望影响其他列的列宽
--  作者:有点甜
--  发布时间:2014/4/9 21:27:00
--  

没办法,模版是固定的。

 

如果要做,就不能用模版了,必须是自己一个值一个值的往表里写入数据。


--  作者:cxonline
--  发布时间:2014/4/9 21:34:00
--  
就是要用代码做导出吗  可以参照我的附件做一小段代码吗帮忙搭一个框架 我自己试着扩展
--  作者:有点甜
--  发布时间:2014/4/9 21:46:00
--  

 导出数据参考,如果弄不好的话,你上传一个例子

 

http://www.foxtable.com/help/topics/1148.htm

 


--  作者:sloyy
--  发布时间:2014/4/9 22:16:00
--  
我的思路是这样:找出合计为0的列,把它的宽度设为0

示例

Dim Book As New XLS.Book("c:\\reports\\test.xls") \'定义一个Excel工作簿
Dim
Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表

Style.ForeColor = Color.Red
\'设置样式的字体颜色
Sheet.Cols(
0).Width = 0 \'设置第1列的宽度
Book.Save("c:\\reports\\test.xls")
Dim
Proc As New Process
Proc.File =
"c:\\reports\\test.xls"
Proc.Start()

[此贴子已经被作者于2014-4-9 22:17:32编辑过]

--  作者:有点甜
--  发布时间:2014/4/9 22:36:00
--  
 楼主的是分组打印,有可能各个分组的列数目不一样
[此贴子已经被作者于2014-4-9 22:35:46编辑过]