Foxtable(狐表)用户栏目专家坐堂 → 在foxtable中直接生成Excel图表


  共有14828人关注过本帖树形打印复制链接

主题:在foxtable中直接生成Excel图表

帅哥哟,离线,有人找我吗?
reachtone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
在foxtable中直接生成Excel图表  发帖心情 Post By:2010/7/7 14:49:00 [只看该作者]

    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示例文件在这里:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:调用excel.rar


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2010/7/7 14:52:00 [只看该作者]

好东西,收藏。顶。


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2010/7/7 14:54:00 [只看该作者]

附件中的dll包含了excel中的全部功能,其ChartType属性包含了多种类型的图表,太丰富了:

xl3DArea
xl3DAreaStacked
xl3DAreaStacked100
xl3DBarClustered
xl3DBarStacked
xl3DBarStacked100
xl3DColumn
xl3DColumnClustered
xl3DColumnStacked
xl3DColumnStacked100
xl3DLine
xl3DPie
xl3DPieExploded
xlArea
xlAreaStacked
xlAreaStacked100
xlBarClustered
xlBarOfPie
xlBarStacked
xlBarStacked100
xlBubble
xlBubble3DEffect
xlColumnClustered
xlColumnStacked
xlColumnStacked100
xlConeBarClustered
xlConeBarStacked
xlConeBarStacked100
xlConeCol
xlConeColClustered
xlConeColStacked
xlConeColStacked100
xlCylinderBarClustered
xlCylinderBarStacked
xlCylinderBarStacked100
xlCylinderCol
xlCylinderColClustered
xlCylinderColStacked
xlCylinderColStacked100
xlDoughnut
xlDoughnutExploded
xlLine
xlLineMarkers
xlLineMarkersStacked
xlLineMarkersStacked100
xlLineStacked
xlLineStacked100
xlPie
xlPieExploded
xlPieOfPie
xlPyramidBarClustered
xlPyramidBarStacked
xlPyramidBarStacked100
xlPyramidCol
xlPyramidColClustered
xlPyramidColStacked
xlPyramidColStacked100
xlRadar
xlRadarFilled
xlRadarMarkers
xlStockHLC
xlStockOHLC
xlStockVHLC
xlStockVOHLC
xlSurface
xlSurfaceTopView
xlSurfaceTopViewWireframe
xlSurfaceWireframe
xlXYScatter
xlXYScatterLines
xlXYScatterLinesNoMarkers
xlXYScatterSmooth
xlXYScatterSmoothNoMarkers


 

关于Chart的所有属性和方法,这里有详细介绍:
http://msdn.microsoft.com/zh-cn/library/microsoft.office.tools.excel.chart_members(VS.89).aspx

建议老六把这个dll集成到foxtable中,它本身就是微软的东西,正本清源。最好能给我们提供一些函数以便直接调用,也能在excel报表的指定位置直接生成这些图表。

还有,lxl版主之前介绍过直接预览excel的方法,它应该也是调用的这个dll,建议把这个功能也内嵌到foxtable中,很实用。

[此贴子已经被作者于2010-7-7 14:56:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/7/7 15:46:00 [只看该作者]

真好啊···

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/7/7 16:30:00 [只看该作者]

真正的高手

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/7/7 20:18:00 [只看该作者]

好东西!不顶就对不起两位怎么主了图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
liuruihua
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:781 积分:9870 威望:0 精华:0 注册:2008/9/1 13:47:00
  发帖心情 Post By:2010/7/7 20:59:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
pyh6918
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1128 积分:11029 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2010/7/7 21:55:00 [只看该作者]

狂顶,如能整合到Foxtable中那太好了!

 回到顶部
帅哥哟,离线,有人找我吗?
ylm
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:312 积分:3190 威望:0 精华:6 注册:2008/8/31 19:42:00
  发帖心情 Post By:2010/7/7 21:58:00 [只看该作者]

 好东东,顶!

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/7/7 22:04:00 [只看该作者]

呵呵,大家自学吧,这个不好集成的。

 回到顶部
总数 15 1 2 下一页