|
挖一下旧贴。最近刚好VB6处理图表,发现日期Y轴不能识别,搜索很久也没办法解决。只能选择调用Excel生成。
表格图表导入程序中最简易代码(网上来源)
- Private Sub Command1_Click()
- Set mXlsApp = New Excel.Application
- Set mXlsBook = mXlsApp.Workbooks.Open("c:\book1.xls")
- Set mXlsSheet = mXlsBook.Worksheets(1)
- ' 以下代码读取Excel中图表到图片框
- mXlsSheet.ChartObjects(1).Chart.CopyPicture '读取图表到剪贴板
- Picture1.Picture = Clipboard.GetData '粘贴数据到图片框
- Clipboard.Clear '清除剪贴板数据
- mXlsBook.Close
- mXlsApp.Quit
- Set mXlsSheet = Nothing
- Set mXlsBook = Nothing
- Set mXlsApp = Nothing
- End Sub
复制代码
创建图表
- Set xlapp = GetObject(, "excel.Application") '打开已有的对象
- Set tbook = xlapp.Activeworkbook
- Set tbsht = tbook.sheets(1)
- tbsht.DrawingObjects.Delete '删除旧图表
- bbh = xlapp.Application.Version * 1 'Excel版本号,office2010是14
- If bbh < 15 Then '判断Excel版本号,选择对应代码创建图表
- Set cht = tbsht.Shapes.AddChart(201, 51, 10) '创建新图表,201样式,51是柱形图
- cht.Chart.SetSourceData Source:=tbsht.Range("A1:C" & tbsht.Cells(500, 1).End(3).Row), PlotBy:=2 '2010版本图表数据引用PlotBy:=2是数据在行
- Else
- Set cht = tbsht.Shapes.AddChart2(201, 51, 10)
- cht.Chart.SetSourceData Source:=tbsht.Range("A1:C" & tbsht.Cells(500, 1).End(3).Row), PlotBy:=2 '2019版本图表数据引用
- End If
- tbsht.ChartObjects(1).Activate
- tbsht.ChartObjects(1).Chart.SetElement (2) '添加标题元素
- tbsht.ChartObjects(1).Chart.ChartTitle.Text = "各节点情况明细" '图表标题文字
- tbsht.ChartObjects(1).Chart.SetElement (104) '添加图列元素
- tbsht.Shapes(1).ScaleHeight 0.92, msoFalse, msoScaleFromTopLeft '调整图表高度
- tbsht.Shapes(1).ScaleWidth 0.8, msoFalse, msoScaleFromTopLeft '调整图表宽度
复制代码
|
|