我试图使图表在Excel从数据表;我设法制作了图表,但有些图表没有更改样式并且没有标题。这是制作图表并使用ChartWizard更改其格式的代码:
Excel.Chart[] GráficasFrecuenciaGanancia = new Excel.Chart[numberOfTables];
//Para trabajar con cada gráfica.
for (int i = 1; i <= numberOfTables; i++)
{
GráficasFrecuenciaGanancia[i - 1] = currentWorkbook.Charts.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing); //Colocamos una hoja de trabajo para gráficas y la asignamos al objeto.
if (GráficasFrecuenciaGanancia[i-1] == null)
{
MessageBox.Show("Error", "Null found");
}
GráficasFrecuenciaGanancia[i - 1].ChartWizard(
Gallery: XlChartType.xlLineMarkers,
PlotBy: XlRowCol.xlColumns,
CategoryLabels: 45,
SeriesLabels: 5,
HasLegend: true,
Title: allTheCells.Item[1 + ((i - 1) * 54), 1].Value2,
CategoryTitle: "Frecuencias (Hz)",
ValueTitle: "Ganancias (dB)",
ExtraTitle: "Extra"
);
然后,我决定手动改变他们的风格(而且成功了),但改变标题给出了一个例外;当它试图改变GráficasFrecuenciaGanancia[13]
的标题时,发生异常。
GráficasFrecuenciaGanancia[i - 1].ChartType = XlChartType.xlLineMarkers;
GráficasFrecuenciaGanancia[i-1].HasTitle = true;
Excel.ChartTitle TítuloGráfica = null;
TítuloGráfica = GráficasFrecuenciaGanancia[i - 1].ChartTitle;
TítuloGráfica.Text = allTheCells.Item[1 + ((i - 1) * 54), 1].Value2; //This is the line that gives the exception.
这是一个例外:(0x80004005(E_FAIL))”- System.Runtime.InteropServices.COMException
这很奇怪,因为给出异常的那一行并没有对前面的图表造成任何问题,而且我还在运行代码之前删除了所有的图表。
1条答案
按热度按时间yc0p9oo01#
为了记录在案,我解决了修剪字符串的问题,字符串有260个字符长,它有很多转义字符(制表符,回车符和换行符)。似乎可以分配给
.Text
属性的字符有限制,我不知道限制是在字符还是在点,但这就是我解决问题的方式。