直接向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