项目生成的Excel格式如下
每一部分要对应一个图表,行数与列数都是不固定的
数据用jxl生成,但jxl不能生成图表,有人说apache的poi HSSF可以,但没找到相关的demo.
jxell(http://www.jxcell.net
.)好像可以,但收费
还有一种方法就是生成图片文件,然后插入到excel中,但我觉得太麻烦了
最后用vba编写了个宏来创建图表,缺点就是用户需要启用宏才能看到图
这里贴出代码以防下次忘记
'创建图表
Sub createChart()
'对象的个数,即图中系列的数目
'object_length = Sheets("chart").A1
object_length = Worksheets("chart").Cells(1, 1).Value
'共有多少天的数据
date_length = Worksheets("chart").Cells(1, 2).Value
'有多少个kpi,即有多少个图
kpi_length = Worksheets("chart").Cells(1, 3).Value
'数据源开始的行号
tmp_int = 3
For i = 1 To kpi_length
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.Name = "chart" & i
'循环增加图
For j = 1 To object_length
ActiveChart.SeriesCollection.NewSeries
v = (tmp_int + date_length - 1)
ActiveChart.SeriesCollection(j).XValues = "=data!R" & tmp_int & "C1:R" & v & "C1"
ActiveChart.SeriesCollection(j).Values = "=data!R" & tmp_int & "C" & (j + 1) & ":R" & v & "C" & (j + 1)
ActiveChart.SeriesCollection(j).Name = "=data!R" & (tmp_int - 1) & "C" & (j + 1)
ActiveChart.Location Where:=xlLocationAsObject, Name:="chart"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = Worksheets("data").Cells(tmp_int - 2, 2).Value
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
Next j
tmp_int = tmp_int + date_length + 4
'设置图表的位置
Set oChtObj = Worksheets("chart").ChartObjects(i)
With oChtObj
.Left = 0
.Width = 600
.Height = 300
.Top = (i - 1) * 320
End With
Next i
End Sub
附近件kpi_3.rar为源excel可以下载解压来看到运行结果.
- 大小: 38.1 KB
分享到:
相关推荐
Excel VBA 自动生成图表 在实际工作中,我们常用图表来表现数据间的某种相对关系,通常采用手工插入的方式,而使用 VBA 代码可以在工作表中自动生成图表。本教程将指导您使用 VBA 代码自动生成图表的步骤。 一、...
在"EXCELVBA贝塞尔曲线及插值.pdf"文件中,可能详细介绍了如何在VBA环境中实现这些算法,并提供了示例代码。通过阅读和理解这份文档,你可以掌握如何在Excel VBA中绘制出符合需求的贝塞尔曲线,并进行数据插值。 ...
6. **用户界面设计**:使用VBA创建自定义的用户界面,如Form或UserForm,添加控件(Button、Label、TextBox等),提高用户友好性。 7. **外部数据访问**:使用VBA连接到数据库,导入或导出数据,实现与SQL Server、...
VBA是Microsoft Office套件中内置的一种编程语言,允许用户自定义Excel的功能,自动化重复任务,创建复杂的宏和自定义工具。 在**Excel VBA手册**中,你将找到以下核心知识点: 1. **VBA基础**:了解VBA的基本语法...
9. **图表和图形**:了解如何通过VBA创建、修改和控制Excel图表,实现动态图表更新。 10. **文件操作**:学习读写外部文件,如CSV、TXT或XML文件,以及与其他应用程序(如Word、Access)的数据交换。 11. **自动化...
8. **图表处理**:利用VBA创建、修改和格式化图表,实现动态图表更新。 9. **外部数据访问**:通过VBA连接数据库,导入或导出数据,实现与外部系统的数据交互。 10. **用户窗体设计**:创建自定义用户界面,提供更...
创建部门考核雷达图.xlsx源码EXCEL VBA宏编程xlsx实例代码下载创建部门考核雷达图.xlsx源码EXCEL VBA宏编程xlsx实例代码下载创建部门考核雷达图.xlsx源码EXCEL VBA宏编程xlsx实例代码下载创建部门考核雷达图.xlsx...
Excel VBA(Visual Basic for Applications)是Microsoft Excel中的编程环境,允许用户自定义工作簿、工作表、图表和各种对象的行为,实现自动化处理和复杂的任务管理。本教程完全版是针对那些希望提升Excel使用效率...
打开文档后自动创建分析图表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载打开文档后自动创建分析图表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载打开文档后自动创建分析图表.xlsx源码EXCEL VBA宏编程xlsx实例代码下载...
6. **图表与图形**:利用VBA创建、修改和控制图表,实现动态图表更新,以及自定义图形元素。 7. **用户界面设计**:创建自定义对话框、用户窗体,提供更加友好和定制化的用户交互界面。 8. **错误处理与调试**:...
Excel VBA(Visual Basic for Applications)是Excel内置的一种编程语言,允许用户自定义工作簿、工作表、图表等对象的行为,实现自动化处理和复杂的数据分析。本参考手册旨在深入解析Excel VBA的对象、属性和方法,...
9. **数据操作**:VBA可以直接与Excel的数据进行交互,包括读取、写入单元格、处理公式、操作图表等。此外,还可以通过VBA连接到外部数据源,如数据库,进行数据导入导出。 10. **调试与测试**:VBA提供了强大的...
5. **典型实例**:资源中的模板很可能包含了一系列实例,如自动填充数据、数据过滤、图表动态更新、邮件发送、数据导入导出等,这些都是Excel VBA的常见应用场景。通过实践这些实例,你能掌握VBA的实际应用技巧。 6...
标签中的"ExcelVBA程序开发自学"、"第3版"和"光盘"、"VBA"分别指出了本书的核心内容、版本信息以及教学辅助形式。 Excel VBA(Visual Basic for Applications)是Microsoft Office套件中内置的一种编程语言,它允许...
在探讨“VBA由图表获取数据源”这一主题时,我们深入分析VBA(Visual Basic for Applications)在Microsoft Office应用程序中的强大功能,特别是在Excel中如何利用VBA代码从图表中提取数据源信息。这一能力对于自动...
例如,使用VBA你可以编写宏来自动填充数据、执行复杂的计算、创建图表、甚至是与其他Office应用程序进行交互。 VBA的基础语法包括变量声明、数据类型(如Integer、Double、String)、控制结构(如If...Then...Else...
标题中的“Excelvba.rar”是一个压缩包文件,其中包含了关于Excel VBA(Visual Basic for Applications)的学习资源。VBA是Microsoft Office套件中的一种编程语言,允许用户自定义Excel的功能,创建宏,以及自动化...
3. 动态图表:VBA能帮助创建动态图表,这些图表会随着底层数据的变化而实时更新,提供直观的数据可视化。 4. 用户界面定制:使用VBA,你可以设计用户友好的交互界面,比如下拉菜单、按钮和对话框,使得非编程人员也...
8. **图表制作与修改**:通过VBA,你可以动态创建和修改图表,实现动态数据可视化。 9. **宏安全设置**:了解如何设置和管理宏的安全性,防止恶意代码的执行,同时确保自己的宏能在安全模式下运行。 总之,"Excel ...