Создайте документ электронной таблицы, указав имя файла
В этом разделе показано, как использовать классы в пакете SDK Open XML для Office для программного создания документа электронной таблицы.
Создание объекта SpreadsheetDocument
В пакете SDK SpreadsheetDocument Open XML класс представляет пакет документов Excel. Чтобы создать документ Excel, создайте экземпляр SpreadsheetDocument
класса и заполните его частями. Документ должен состоять по крайней мере из двух частей — части книги, которая служит контейнером для документа, и части листа. Текст представлен в пакете в виде XML с помощью SpreadsheetML
разметки.
Чтобы создать экземпляр класса, вызовите Create метод . Предоставляется несколько Create
методов, каждый из которых имеет разную сигнатуру. В примере кода в этом разделе используется Create
метод с сигнатурой, требующей двух параметров. Первый параметр , package
принимает полную строку пути, представляющую документ, который требуется создать. Второй параметр type является членом перечисления SpreadsheetDocumentType . Этот параметр представляет тип документа. Например, существуют различные члены SpreadsheetDocumentType
перечисления для надстроек, шаблонов, книг, а также шаблонов и книг с поддержкой макросов.
Примечание.
Выберите соответствующий SpreadsheetDocumentType
файл и убедитесь, что сохраненный файл имеет правильное, соответствующее расширение имени файла.
SpreadsheetDocumentType
Если файл не соответствует расширению имени файла, при открытии файла в Excel возникает ошибка.
В следующем примере кода вызывается Create
метод .
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook))
После создания пакета документа Excel вы можете добавить в него части. Чтобы добавить часть книги AddWorkbookPart , вызовите метод SpreadsheetDocument
класса .
// Add a WorkbookPart to the document.
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
Часть книги должна содержать по крайней мере один лист. Чтобы добавить лист, создайте новый Sheet
. При создании нового Sheet
объекта свяжите Sheet
с Workbook , передав параметры Id
, SheetId
и Name
. Используйте метод для GetIdOfPart получения Id
объекта Sheet
. Затем добавьте новый лист в коллекцию Sheet
, вызвав Append метод Sheets класса .
Чтобы создать базовую структуру документа с помощью пакета SDK Open XML, создайте Workbook
экземпляр класса, назначьте его свойству WorkbookPart части документа main, а затем добавьте экземпляры WorksheetPart, Worksheet
и Sheet
. Следующий пример кода создает лист, связывает его с книгой и добавляет его в книгу.
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add Sheets to the Workbook.
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
sheets.Append(sheet);
Пример кода
Ниже приведен полный пример кода на языках C# и Visual Basic.
static void CreateSpreadsheetWorkbook(string filepath)
{
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook))
{
// Add a WorkbookPart to the document.
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add Sheets to the Workbook.
Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
sheets.Append(sheet);
}
}