ASP生成Excel是一个非常容易,但是有问题多多的技术。当然.Net也会有同样的问题。特别是网上的居然那么文章都是来源于一篇文章,而那个代码明显是错的。所以比较气氛,大家还是有点敬业精神的好。
其实如果说最规范的Excel生成方法,当然是使用微软的对象Excel.Application。这里我们就从这个Excel.Application对象开始。
网上搜索一下,真的很难找到有用的信息,我只是想找一下Excel.Application这个对象的文档,居然都很难
搜索出来,当然你可以说直接去MSDN,那我要告诉你,中国教育网是上不了MSDN的,可悲吧。如果是MSDN的话,地址是:msdn.microsoft/en-us/library/bb149137.aspx
好了,不废话了,总体上还是让我找到了,当然是非常之辛苦。
现在说些有用的,如果想用这个对象进行Excel的操作,那真的是一件很OO的事情。当然对于这样的方便你需要付出一定的代价。也就是很多人使用的常见
问题解答:
1、服务器必须安装Excel客户端(也就是安装Excel)
2、需要给服务器的Dcom组件添加Everyone权限。在组建服务里面选择Dcom组件,然后找到Microsoft excel,然后属性,选择安全选项卡,然后把三个选项都选择自定义,添加Everyone权限(这里是不完全安全的,我记得应该是选择IIS的用户还有Netservice就可以了,好像是,不过这里为了简单就Everyone了)
3、需要添加磁盘的读写权限,同样是为了简单,在文件夹上选择属性,添加Everyone读写权限。
现在可以开始我们的Excel.Application操作之旅了。
(未完,待续)
由于昨天有些别的事情,搞定以后已经4点半了,所以今天继续一下。
Set xlApplication = Server.CreateObject("Excel.Application") rem 调用excel对象
xlApplication.Visible = False rem 无需打开excel
以上就在Web方式下创建了一个Excel的Application对象,然后你可以进行相关的操作了。
下面来说两个最重要的属性,Workbooks 和 Worksheets
首先我们来说Workbooks这里我主要说是和这篇文章有过关的,更多的属性方法推荐查询官方
文档。这里主要是xlApplication.Workbooks.Add 和 xlApplication.Workbooks.Open 两个方法,一个是创建一个工作区也就是一个实际上的Excel本体,另外一个是打开一个Excel文件。那么接下来是使用方法:
xlApplication.Workbooks.Open server.MapPath("test.xls")
xlApplication.Workbooks.Add rem 添加工作簿
逻辑上可以这样理解,Application是一个工程,那么在工程里面你需要有一个工作区。而这个Workbooks就是这个工作区。你可以创建也可以读取。
接下来是更为重要的Worksheets。因为他才是真正的Excel内容区。
Set xlWorksheet = xlApplication.Worksheets(1) rem 生成或者打开第1个工作表的子对象
或者
Set xlWorksheet = xlApplication.Worksheets("工作表名称")
rem 以上大家可以看出来,打开一个工作表可以通过索引值也可以通过工作表的名称,但是有一个问题就是,这里的索引值从1开始,而不是我们通常熟悉的0,一定要注意
xlWorksheet.name="
工作表名称" rem 指定工作表名称
接下来我们就可以对工作表进行操作了,也就是实际上我们生成Excel内容的过程,是使用Worksheet这个对象
那么我们来简单说一下这个对象的用法(这里设置格式的方法略,可以
查询MSDN官方
文档)。
这里的操作就可以Excel内部操作一样,通过字母和数字的组合来访问一个单元格,例如xlWorksheet.Range("A2")。然后通过value属性进行读取和修改操作,当然你可以进行
xlWorksheet.Range("A2").font.Size=14
xlWorksheet.Range("A2").font.bold=true
类似于这样的设置,因为这里不是重点,所以忽略。
接下来是xlWorksheet.SaveAs "Excel的路径" 通过Worksheet对