Tag: 图表

使用VBA格式化图表数据标签

我正在开发一个有很多图表的仪表板,随着这些图表上显示的数据的变化,数字的格式也会变化。 现在,我遇到了一个问题,试图从数据所基于的电子表格中检索预期的格式代码,在图表中的所有系列中循环。 以下是目前的代码: Sub FixLabels(whichchart As String) Dim cht As Chart Dim i, z As Variant Dim seriesname, seriesfmt As String Dim seriesrng As Range Set cht = Sheets("Dashboard").ChartObjects(whichchart).Chart For i = 1 To cht.SeriesCollection.Count If cht.SeriesCollection(i).name = "#N/D" Then cht.SeriesCollection(i).DataLabels.ShowValue = False Else cht.SeriesCollection(i).DataLabels.ShowValue = True seriesname = cht.SeriesCollection(i).name Debug.Print seriesname 有了这个,我可以检索不会导致错误的de系列的名称,并隐藏所做的系列。 到现在为止还挺好。 现在开始格式化:有一列存储了这个工作簿的所有可能的序列名,左边一列是我的格式化代码,整型数字是“int”,“#,#”是具有重要小数的数字,以及百分比的“%”。 […]

如何使用C#在Excel中的图表上添加多个系列

我想添加如下图所示的图表。 这个图表有3个系列(黑色,红色,蓝色)。 以下是在图表上创build“一个”系列的代码块。 Excel._Workbook oWorkbook = (Excel._Workbook)oSheet.Parent; Excel._Chart oChart = (Excel._Chart)oWorkbook.Charts.Add(oSheet, Type.Missing, Type.Missing, Type.Missing); // Y axis data Excel.Range oRange = oSheet.get_Range(yRange, Type.Missing); // Creates a chart oChart.ChartWizard(oRange, chartType, 2, Excel.XlRowCol.xlColumns, Type.Missing, Type.Missing, false, title, xAxisTitle, yAxisTitle, Type.Missing); // Sets X axis category Excel.Series oSeries = (Excel.Series)oChart.SeriesCollection(1); oSeries.XValues = oSheet.get_Range(xRange, Type.Missing); oChart.Name = chartName; MSDN […]

如何在C#中获取图表的Excel XValue

我正在编写一些代码来操纵使用C#的excle文件中的图表。 其中一个关键要求是获得Chart SeriesCollection的XValue属性。 我试图通过索引来访问它,但它不起作用,虽然我可以在Visual Studio中的“监视”窗口中看到值列表。 从Watch窗口中,我注意到s.XValue的types是dynamic的{object []} ,我从来没有见过,而obj.ToString()是System.Object [*] 。 问题是如果XValue不支持索引,我可以从XValue属性获取每个值。 顺便说一句,在互联网上search,我只能find方法来设置Excel的单元格范围XValue,但没有find如何得到XValue。 我真的很感激,如果有人可以build议。 Excel._Worksheet worksheet = (Excel._Worksheet)book.Worksheets[a]; Excel.ChartObject chartObj = (Excel.ChartObject)worksheet.ChartObjects(1); if (chartObj != null) { Excel.Chart chart = (Excel.Chart)chartObj.Chart; var s = (Excel.Series)chart.SeriesCollection(1); object obj = s.XValues; //How to get s.XValues[1], s.XValues[2], s.XValues[3]… }

Excel的图表生成

我正在使用PHPExcel库来读取/写入excel文件。 现在我想要生成一个图表,或者添加一个图像(图表生成与pChart )。 我想知道是否有其他图书馆支持dynamic图像插入(而不是模板图像)或基于书面数据的图表生成。

使用VBA添加多个数据系列以优化图表

假设我有我的数据在行中,我想创build一个图表(x,y分散)。 date 1.1. 1.2. 1.3. 1.4 1.5 set1 12 36 12 23 33 set2 44 22 11 1 13 set3 54 5 56 56 34 set4 1 2 6 12 33 如何将set1,set2和set4添加到图表中,而不是将set3添加到图表中,而无需逐个单独select它们? 对于x范围(date)我可以做 Dim xrange As Range Set xrange = Application.InputBox("select x-range", "Get Range", Type:=8) 但是对于数据集(select多行)做同样的事情也不行,因为散点图中的每个序列都需要一个单独的范围 ActiveChart.SeriesCollection(1).XValues = xrange ActiveChart.SeriesCollection(1).Values = "=Sheet1!$4:$4" 但我有多个数据集的select。 我需要一种方法来分割我的input框select范围,并将它们写入唯一的variables。 然后我会用上面的方法为每个xrange […]

C#删除Excel图表

我想从Excel文件中删除图表。 Excel文件是一个带图表的自动生成的历史文件,问题是,每次我更新历史时,它都会生成一个新的图表,但是旧的图表必须被删除…这是我的代码: Excel.Workbook ExcelWorkBook = ExcelApp.Workbooks.Open(path); ExcelApp.Visible = true; Excel.Worksheet Sheet = (Excel.Worksheet)ExcelWorkBook.Worksheets.get_Item(1); Excel.Range range = Sheet.UsedRange; int i = 2; while (Convert.ToString((range.Cells[i, 1] as Excel.Range).Value2) != null) { i++; } Excel.Range oRange; Excel._Chart oChart; Excel.Series oSeries; oChart = (Excel._Chart)ExcelWorkBook.Charts.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value); oRange = Sheet.get_Range("A2:H" + i).get_Resize(Missing.Value, 8); oChart.ChartWizard(oRange, Excel.XlChartType.xlLineStacked, Missing.Value, Excel.XlRowCol.xlColumns, Missing.Value, Missing.Value, […]

Excel VBA:有没有办法通过VBA格式化图表坐标轴?

我必须在Excel中使用VBA制作柱形图(无用户input)。 我想格式化X轴的标签,以便每个标签的alignment度变成-270度。 (这可以通过更改“格式轴”对话框的“alignment”选项卡中的“自定义angular度”属性手动完成。)我已经尝试录制一个macros,但Excel似乎没有loggingalignment步骤。 有人知道如何用VBA做到这一点吗?

为许多系列创build折线图

我在我的工作表中有如下数据: Day Area AVG(Time) —————————– 2013-07-01 LINE1 49.703432 2013-07-02 LINE1 38.119913 2013-07-03 LINE1 30.6651 2013-07-04 LINE1 61.163277 2013-07-05 LINE1 29.757895 2013-07-01 LINE2 214.900325 2013-07-02 LINE2 185.053037 2013-07-03 LINE2 81.827013 2013-07-04 LINE2 72.822807 2013-07-05 LINE2 124.351707 […] LINE可以达到20个, days可以达到60个。我想创build一个图表,其中的X轴将是days ,Y轴的数字,并且每个LINE Excel将绘制一条带点的单线。 我尝试了几种types的图表,但仍然没有performance出来。

用epplus创buildexcel图

这是我的。 我有一个双列的Excel表。 第1栏有关于图例的说明,如第1类第2类等。第2栏有总数为6,4,18等的数字 类别数量 类别1 6 类别2 4 类别3 18 我需要显示计数值的graphics,并显示每行的类别名称。 我尝试了不同的值,但我无法弄清楚。 这是我目前的代码 ExcelChart ec = (ExcelLineChart)chartSheet.Drawings.AddChart("chart_1", eChartType.Line); ec.SetPosition(1, 0, 3, 0); ec.SetSize(800, 300); var ran1 = chartSheet.Cells["A4:A6]; var ran2 = workSheet.Cells["0:0"]; var serie1 = (ExcelChartSerie)ec.Series.Add(ran1, ran2); serie1.Header = chartSheet.Cells["A3"].Value.ToString(); ran1 = chartSheet.Cells["B4:B6]; var serie2 = ec.Series.Add(ran1, ran2); serie2.Header = chartSheet.Cells["B3"].Value.ToString(); var xml = ec.ChartXml; […]

如何在同一个图表上绘制两个散点图?

我有两个时间覆盖很接近,但不完全相同的系列。 所以我需要绘制每个系列与相应的时间分量来获得匹配。 另外点的数量是不同的,为10。 如何在时间域中使用x轴在同一个图上绘制两个散点图? 例如 t1: 0.1 0.3 0.5 … y1: 3 7 9 … t2: 0.18 0.21 0.34 0.41 0.56 … y2: 32 55 4 7 1 … 正如你所看到的,我不能仅仅强调一切,因为这个系列的时间并不匹配。