• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Вставить График В 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, ошибка, что некорректный графический объект.
 
Мы в соцсетях:

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