FoxTable目前的图表控件,生成的图表都是以图片格式嵌入Excel的,这就给后期的再处理带来一些不便,比如:标注不能拖拽,手工修改表中的数据后无法自动更新,等等。加上有些用户的习惯问题,可能也不太喜欢这种类型的图表。为满足客户需求,前期我是通过Excel的VBA来生成excel类型的图表的,很繁琐。后来在lxl版主的热心帮助下,现通过引用第三方dll的方式,更好的解决了此问题。
实现方法如下:
1、将Microsoft.Office.Interop.Excel.dll拷贝到foxtable所在目录
2、添加对这个文件的引用
3、添加命名空间和别名:
Microsoft.Office.Interop.Excel(MSExcel)
4、在命令窗口执行以下代码:
Dim app As New MSExcel.Application()
app.Visible = True
Dim book As MSExcel.Workbook = app.Workbooks.Open("D:\Report.xls") '指定excel文件
Dim sht As MSExcel.Worksheet = book.Sheets("同期对比") '指定工作表
Dim cht As MSExcel.Chart = app.Charts.Add() '添加一个Chart
cht.ChartType = MSExcel.XlChartType.xlLineMarkers '指定Chart类型
cht.SetSourceData(sht.Range("A3", "D28"), MSExcel.XlRowCol.xlColumns) '指定数据区
cht.Location(MSExcel.XlChartLocation.xlLocationAsObject, "同期对比") '将Chart移动到工作表
本示例用到的dll和excel示例文件在这里: