• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Вставить График В Excel С Используя Documentformat.openxml

  • Автор темы NatNiM
  • Дата начала
N

NatNiM

Здравствуйте.

Такая задача. Я создаю файл Excel и записываю туда данные из DataTable:

Код:
string docName = @"C:\Test.xlsx";
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(docName, SpreadsheetDocumentType.Workbook);

WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
workbookpart.Workbook = new Workbook();

WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());

Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<Sheets>(new Sheets());

Sheet sheet = new Sheet()
{
Id = spreadsheetDocument.WorkbookPart.
GetIdOfPart(worksheetPart),
SheetId = 1,
Name = "Joe"
};
var worksheet = worksheetPart.Worksheet;
var sheetData = worksheet.GetFirstChild<SheetData>();

for (int j = 0; j < dt.Rows.Count; j++ )
{
string territoryName = dt.Rows[j]["name"].ToString();
decimal salesLastYear = Convert.ToInt32(dt.Rows[j]["number"]);
decimal salesThisYear = Convert.ToInt32(dt.Rows[j]["val"]);
Row contentRow = CreateContentRow(index, territoryName, salesLastYear, salesThisYear);
index++;
sheetData.AppendChild(contentRow);
}

sheets.Append(sheet);
workbookpart.Workbook.Save();
spreadsheetDocument.Close();
Теперь ниже созданной таблицы нужно добавить диаграмму, как это можно сделать?
На оф. сайте приводится пример создания ступенчатой диаграммы, но у меня этот код создает файл excel с ошибкой и без диаграммы.
Буду благодарен за любую помощь.
 
L

LuMee

Лучше всего будет заглянуть в справку по VBA, идущую с MS Office, и поискать там классы/методы/функции для работы с диаграммами. После этого останется просто вызвать их в вашем C#-коде. Также можно почитать что-нибудь вроде . Ну и неработающий код покажите; возможно, найдем, что не так.
 
N

NatNiM

Здравствуйте.
Вот, пробовал код для своей дл своего примера. В итоге, при открытии Excel, ошибка, что некорректный графический объект.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!