直接向Excel报表插入图片
前面介绍的几个给Excel报表扩展功能的方法,都是利用其引用图片文件的功能实现的。
也就是将一些控件生成的图片,保存为一个约定的图片文件,并在Excel报表中引用此约定的文件,那么就等于间接地为Excel报表加上了条形码、图表、绘图等功能。
如果采用模板来生成报表,这种方式是很方便的。
如果不采用模板,而是完全采用代码来生成Excel报表,可以考虑下面的方法,直接向Excel的指定单元格中插入图片。
Painter、BarCode、BarCodeBuilder、Chart、ChartBuilder等控件都有一个Image属性,返回其生成的图片,这个图片可以直接插入Excel报表中。
示例
打开示例文件“Excel报表.Table”,然后选择“统计表”,可以看到下面的窗口:
窗口中有一个“生成Excel报表”按钮,其Click事件代码如下:
Dim
b
As New XLS.Book
Dim t As
Table = Tables("统计表")
Dim s As XLS.Sheet =
b.Sheets(0)
Dim
Chart As
WinForm.Chart = Forms("窗口1").Controls("Chart1")
For c As
Integer = 0
To t.Cols.Count -1
'添加列标题
s(0, c).Value = t.Cols(c).Name
Next
For r As
Integer = 0
To t.Rows.Count - 1
'填入数据
For
c As Integer =
0 To t.Cols.Count -1
s(r +1,
c).Value = t.rows(r)(c)
Next
Next
'插入图表
s(t.rows.Count + 2,1).Value
= New XLS.Picture(Chart.Image,0,0,422,258)
b.Save("c:\reports\test.xls")
Dim Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()
单击该按钮,生成下图所示的Excel报表,报表中插入了Chart空间生成的图表:
本页地址:http://www.foxtable.com/webhelp/topics/1951.htm