以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  我做EXCEL报表的一点体会  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=2407)

--  作者:yangming
--  发布时间:2009/4/12 12:02:00
--  我做EXCEL报表的一点体会
 

我做EXCEL报表的一点体会:

 

专业报表我也做了二张,一张是当月工资报表,一张是工资条,其它的报表我全是用EXCEL做了,由于对代码不是很熟悉,所以,我感觉用EXCEL更爽手多了,加上用EXCEL都十多年了,可以称的上是熟手了吧,再有就是用EXCEL非常直观,其好处就不用我多说了。

我想说的是,我使用EXCEL做报表的体会:

一、            如何更方便快捷?

1、先将狐表文件导出为EXCEL表,这样,我们就能快速的得到一张EXCEL表了,然后打开此表,删除其中的数据,只留下一行列标题,以我的一张报银行表为例,看下图:

选中第一行,然后将鼠标放在实发工资的右下角,按右键,这时我们就会看到一个实心的“十”,向下拖动鼠标,就会将第一行的所有列的数据复制下来了,结果如下图:

2、对第二行各列分别加上方括号:如日期改为:[日期],这个只能是一个一个的加上了

3、其它的就按照帮助文件的做就可以。


二、            关于引用单元格的问题:

做报表的朋友都知道,如果很多报表标题上都会加入时间,如果是固定的时间,那每个月做之前都要改标题,很麻烦,如何才能一劳永逸呢,我下面就是介绍这样的方法的。请看下图:

如果不看地址栏,不看到公式,我们以为表的标题就是自己输入的,其实这里引用了单元格的公式。


下面我就来说说具体的操作过程吧。

1、打开我隐藏的A列,将光标移到A1:

我们看到A1列的公式“=TODAY()”,这里要注意,A1单元格的格式要设置为日期型。

2、在表格的G2列设置公式为“=YEAR(A1)”

4、在表格的H2列设置公式为“=MONTH(A1)”

5、将上述三个单元格的字体颜色全改成白色,目的很清楚了,就是打印时别让人看见啊,呵呵。

6、最后一步,就是在标题所处的单元格放一公式:=CONCATENATE(G2,"年",H2,"月","报银行表"),还可以对标题进行字体、字号、颜色、加粗等处理。


看看打印的效果:

可能有朋友要问了,那为何不能直接输入公式:=YEAR(TODAY()),而要多费个周折呢,这个问题你自己实践一下就会明白了,呵呵。

注意事项:

1、在单元格输入公式后,一定要点回车键,不要直接用鼠标移动。

2、A1单元格的格式要设置为日期型。

图片很多,直接贴不上来,我将本文及图片做为附件上传吧
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:我做excel报表的一点体会.rar


还有一点要注意的是:引用的年和月的单元格必须是常规或是文本格式.
另外,如果是上一个月,那就将A1单元格的公式改成:“=TODAY()-28”,,这里的28就是天数,一年中二月份最少的天数是28天,所以放28不会有问题,当然,前提是标题中只是放年和月的.
[此贴子已经被作者于2009-4-12 13:21:39编辑过]

--  作者:程兴刚
--  发布时间:2009/4/12 12:35:00
--  
谢谢分享,还不顶等啥时候!
--  作者:易服
--  发布时间:2009/4/12 13:12:00
--  

学习


--  作者:yangming
--  发布时间:2009/4/12 13:22:00
--  
    还有一点要注意的是:引用的年和月的单元格必须是常规或是文本格式.
另外,如果是上一个月,那就将A1单元格的公式改成:“=TODAY()-28”,,这里的28就是天数,一年中二月份最少的天数是28天,所以放28不会有问题,当然,前提是标题中只是放年和月的.

    已将此贴内容放到一楼了,
--  作者:gdlgh
--  发布时间:2009/4/12 15:19:00
--  
大姐有心人,要顶!
--  作者:狐狸爸爸
--  发布时间:2009/4/13 7:59:00
--  
我顶。
--  作者:t_fs
--  发布时间:2009/4/13 16:12:00
--  
以下是引用yangming在2009-4-12 13:22:00的发言:
    还有一点要注意的是:引用的年和月的单元格必须是常规或是文本格式.
另外,如果是上一个月,那就将A1单元格的公式改成:“=TODAY()-28”,,这里的28就是天数,一年中二月份最少的天数是28天,所以放28不会有问题,当然,前提是标题中只是放年和月的.

    已将此贴内容放到一楼了,


     想问一下,如若打印日期没有规律时,这个日期怎么设置呢?如我想随机的打印一下某年某月报表,是不是只能用手直接修改的办法了。因为报表中经常会用到一些变量,如果EXCEL报表中能够引用变量值就非常完美了。

    不知老大能否实现在EXCEL报表中,引用狐表中的变量这一功能。否则的话,作为二次开发的软件,提交用户后,再交待用户更改这个日期值,是不安全的。

    EXCEL报表尚未学完,不一定正确,仅供参考。


--  作者:don
--  发布时间:2009/4/13 16:18:00
--  
以下是引用t_fs在2009-4-13 16:12:00的发言:


     想问一下,如若打印日期没有规律时,这个日期怎么设置呢?如我想随机的打印一下某年某月报表,是不是只能用手直接修改的办法了。因为报表中经常会用到一些变量,如果EXCEL报表中能够引用变量值就非常完美了。

    不知老大能否实现在EXCEL报表中,引用狐表中的变量这一功能。否则的话,作为二次开发的软件,提交用户后,再交待用户更改这个日期值,是不安全的。

    EXCEL报表尚未学完,不一定正确,仅供参考。

一开始就能够!

一,引用全局变量

可以在Excel报表中引用全局变量,格式为:

[!全局变量名称]

全局变量可以参与表达式计算,例如:

{"起始日期:" & [!起始日期]}

二,使用标记

利用Marks集合,我们可以在报表模板中插入标记,然后在生成报表的时候,将标记替换为真正的值。

在Excel报表模板中插入一个标记的格式为:

<标记名称>

示例

假定报表中某个位置需要打印出当前登录用户的名称,我们可以在设计报表的时候,在该处插入标记:

<用户名>

标记的名称可以根据需要取。

然后在生成报表之前,利用Marks集合,将标记替换为真正的用户:

Dim Book As New XLS.Book("c:\\book5.xls")
Book.Marks.Add(
"用户名",User.Name)
Book.Build()
Book.Save(
"c:\\reports\\test.xls")
Dim
Proc As New Process
Proc.File =
"c:\\reports\\test.xls"

Proc.Start()





--  作者:czy
--  发布时间:2009/4/13 16:19:00
--  
我也顶。
--  作者:t_fs
--  发布时间:2009/4/13 16:38:00
--  
能够就好,谢谢了