Создайте гистограмму Excel из источника данных в коде C # вместо диапазона электронной таблицы, используя Aspose.Cells - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь использовать Aspose.Cells для создания гистограммы на электронной таблице.Источником данных является IEnumerable из десятичных чисел, которые извлекаются из базы данных.Читая документацию Aspose.Cells, я видел единственный способ создать гистограмму в коде, взяв данные гистограммы из диапазона в электронной таблице.Я хочу сгенерировать диаграмму непосредственно из IEnumerable без необходимости фактического включения данных в электронную таблицу.Есть ли способ сделать это, используя Aspose.Cells или стандартные библиотеки .NET?Если возможно создать временную рабочую книгу в коде, вставить в нее данные и использовать ее в качестве источника данных (отбрасывая ее сразу же после этого), я, вероятно, также смогу сделать это.Спасибо!

1 Ответ

0 голосов
/ 04 июня 2018

Пожалуйста, смотрите следующий код.Он создает Гистограмму с использованием API-интерфейса Aspose.Cells.Пожалуйста, прочтите комментарии внутри кода для получения дополнительной помощи.

На следующем снимке экрана показан выходной файл Excel, содержащий столбчатую диаграмму, сгенерированную кодом для вашей справки.

Bar Chart generated by Aspose.Cells


Пример кода на C #

// Create empty workbook.
Workbook wb = new Workbook();

// Access first worksheet.
Worksheet ws = wb.Worksheets[0];

// Add Bar chart in first worksheet.
int idx = ws.Charts.Add(ChartType.Bar, 5, 2, 20, 10);

// Access Bar chart.
Chart ch = ws.Charts[0];

// Add two number series, true means they are vertical.
ch.NSeries.Add("{6,3,1,7}", true);
ch.NSeries.Add("{2,5,7,1}", true);

// Set the category data to show on X-axis.
ch.NSeries.CategoryData = "{Apple,Pear,Orange,Mango}";

// Set the name of first and second series.
ch.NSeries[0].Name = "Cricket";
ch.NSeries[1].Name = "Hockey";

// Save the output in xlsx format.
wb.Save("outputBarChart.xlsx", SaveFormat.Xlsx);

Примечание: Я работаю евангелистом разработчика в Aspose

...