Поделиться через


Создайте документ электронной таблицы, указав имя файла

В этом разделе показано, как использовать классы в пакете 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);
    }
}

См. также