Экспорт данных листа Excel в таблицу

В этом уроке мы научимся экспортировать данные из листа Excel и создавать таблицу в документе PDF с помощью библиотеки Aspose.PDF для .NET. Мы шаг за шагом разберем исходный код и подробно объясним каждый раздел. К концу этого урока вы сможете создавать файлы PDF с таблицами, содержащими данные из листов Excel. Давайте начнем!

Требования

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Базовые знания языка программирования C#
  • Visual Studio установлена на вашем компьютере
  • Библиотека Aspose.PDF для .NET добавлена в ваш проект

Шаг 1: Настройка среды

Для начала создайте новый проект C# в Visual Studio. Добавьте ссылку на библиотеку Aspose.PDF для .NET, щелкнув правой кнопкой мыши по проекту в обозревателе решений, выбрав «Управление пакетами NuGet» и выполнив поиск по запросу «Aspose.PDF». Установите пакет, и все готово.

Шаг 2: Загрузка рабочего листа Excel

На первом шаге нашего кода мы определяем путь к каталогу, содержащему документ Excel. Замените “ВАШ КАТАЛОГ ДОКУМЕНТОВ” на фактический путь к каталогу, где находится ваш файл Excel.

// Путь к каталогу документов.
string dataDir = "YOUR DOCUMENT DIRECTORY";

Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(new FileStream(dataDir + "newBook1.xlsx", FileMode.Open));

Здесь мы используем библиотеку Aspose.Cells для загрузки книги Excel. Обязательно замените “newBook1.xlsx” на имя вашего файла Excel.

Шаг 3: Доступ к рабочему листу

Далее нам нужно получить доступ к первому листу в файле Excel. Мы делаем это с помощьюWorksheets коллекцияWorkbook объект.

// Доступ к первому листу в файле Excel
Aspose.Cells.Worksheet worksheet = workbook.Worksheets[0];

Если ваш файл Excel содержит несколько листов, вы можете изменить значение индекса.[0] для доступа к другому рабочему листу.

Шаг 4: Экспорт данных в DataTable

Теперь мы экспортируем содержимое листа Excel вDataTable Объект. Мы указываем диапазон ячеек для экспорта с помощьюExportDataTable метод.

// Экспорт содержимого 7 строк и 2 столбцов, начиная с 1-й ячейки, в DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0, worksheet.Cells.MaxRow + 1, worksheet.Cells.MaxColumn + 1, true);

В этом примере мы экспортируем все строки и столбцы, начиная с первой ячейки (0, 0) до последней ячейки на листе. Установите соответствующий диапазон в соответствии с вашими требованиями.

Шаг 5: Создание PDF-документа

Теперь мы создадим новый PDF-документ с помощью библиотеки Aspose.PDF.

// Создать экземпляр документа
Aspose.Pdf.Document pdf1 = new Aspose.Pdf.Document();

Это создаст пустой PDF-документ, в который мы сможем добавить контент.

Шаг 6: Добавление страницы и таблицы

Чтобы отобразить данные в табличном формате, нам необходимо добавить страницу и таблицу в PDF-документ.

// Создать страницу в экземпляре документа
Aspose.Pdf.Page sec1 = pdf1.Pages.Add();

// Создать объект «Таблица»
Aspose.Pdf.Table tab1 = new Aspose.Pdf.Table();

// Добавьте объект «Таблица» в коллекцию абзацев раздела.
sec1.Paragraphs.Add(tab1);

Здесь мы создаем новую страницу и объект таблицы. Затем мы добавляем таблицу в коллекцию абзацев страницы.

Шаг 7: Настройка свойств таблицы

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

// Установить ширину столбцов таблицы
tab1.ColumnWidths = "40 100 100";

// Установить границу ячейки таблицы по умолчанию с помощью объекта BorderInfo
tab1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);

В этом примере мы устанавливаем ширину столбцов на 40, 100 и 100 единиц. Отрегулируйте значения на основе ваших данных. Мы также устанавливаем границу ячейки по умолчанию для отображения границ со всех сторон каждой ячейки.

Шаг 8: Импорт данных в таблицу

Теперь мы импортируем данные изDataTable объект в таблицу с помощьюImportDataTable метод.

// Импортируйте данные в объект Table из DataTable, созданного выше.
tab1.ImportDataTable(dataTable, true, 0, 0, dataTable.Rows.Count + 1, dataTable.Columns.Count);

Здесь мы указываем диапазон строк и столбцов для импорта. В этом примере мы импортируем все строки и столбцы изdataTable объект.

Шаг 9: Форматирование таблицы

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

// Взять 1-ю строку из таблицы
Aspose.Pdf.Row row1 = tab1.Rows[0];

// Форматировать первую строку
foreach(Aspose.Pdf.Cell curCell in row1.Cells)
{
     // Установить цвет фона ячеек в первой строке
     curCell.BackgroundColor = Color.Blue;// Установить грань для ячеек в первой строке
     curCell.DefaultCellTextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Helvetica-Oblique");
    
     // Установить цвет шрифта ячеек в первой строке
     curCell.DefaultCellTextState.ForegroundColor = Color.Yellow;
    
     // Установите выравнивание текста для ячеек в первой строке
     curCell.DefaultCellTextState.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Center;
}

// Альтернативный формат строки
for (int All_Rows = 1; All_Rows <= dataTable.Rows.Count; All_Rows++)
{
     foreach(Aspose.Pdf.Cell curCell in tab1.Rows[All_Rows].Cells)
     {
         // Установить цвет фона ячеек в чередующихся строках
         curCell.BackgroundColor = Color.Gray;
        
         // Установить цвет текста ячеек в чередующихся строках
         curCell.DefaultCellTextState.ForegroundColor = Color.White;
     }
}

Здесь мы перебираем ячейки в первой строке и устанавливаем их цвет фона, шрифт, цвет шрифта и выравнивание текста. Затем мы перебираем все ячейки в альтернативных строках и устанавливаем их цвет фона и текста.

Шаг 10: Сохранение PDF-документа

Наконец, мы сохраняем PDF-документ в указанном месте.

// Сохранить PDF-файл
pdf1.Save(dataDir + @"Exceldata_toPdf_table.pdf");

Обязательно замените «КАТАЛОГ ВАШИХ ДОКУМЕНТОВ» на желаемый путь к каталогу и имя файла для выходного PDF-файла.

Пример исходного кода для экспорта данных листа Excel в таблицу с помощью Aspose.PDF для .NET

// Путь к каталогу документов.
string dataDir = "YOUR DOCUMENT DIRECTORY";

Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(new FileStream(dataDir + "newBook1.xlsx", FileMode.Open));
// Доступ к первому листу в файле Excel
Aspose.Cells.Worksheet worksheet = workbook.Worksheets[0];
// Экспорт содержимого 7 строк и 2 столбцов, начиная с 1-й ячейки, в DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0, worksheet.Cells.MaxRow + 1, worksheet.Cells.MaxColumn + 1, true);

// Создать экземпляр документа
Aspose.Pdf.Document pdf1 = new Aspose.Pdf.Document();
// Создать страницу в экземпляре документа
Aspose.Pdf.Page sec1 = pdf1.Pages.Add();

// Создать объект «Таблица»
Aspose.Pdf.Table tab1 = new Aspose.Pdf.Table();

// Добавьте объект «Таблица» в коллекцию абзацев раздела.
sec1.Paragraphs.Add(tab1);

// Установите ширину столбцов таблицы. Нам нужно указать ColumnCount вручную.
// Поскольку текущий рабочий лист Excel имеет три столбца, мы указываем то же количество.
tab1.ColumnWidths = "40 100 100";

// Установить границу ячейки таблицы по умолчанию с помощью объекта BorderInfo
tab1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F);

// Импортируйте данные в объект Table из DataTable, созданного выше.
tab1.ImportDataTable(dataTable, true, 0, 0, dataTable.Rows.Count + 1, dataTable.Columns.Count);
// Взять 1-ю строку из таблицы
Aspose.Pdf.Row row1 = tab1.Rows[0];

// Пройдитесь по всем ячейкам в 1-й строке и установите для них синий цвет фона.
foreach (Aspose.Pdf.Cell curCell in row1.Cells)
{
	// Установить фон всех ячеек в 1-й строке таблицы.
	curCell.BackgroundColor = Color.Blue;
	// Установите шрифт для ячеек 1-й строки таблицы.
	curCell.DefaultCellTextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Helvetica-Oblique");
	// Установите цвет шрифта всех ячеек в 1-й строке таблицы.
	curCell.DefaultCellTextState.ForegroundColor = Color.Yellow;
	// Установите выравнивание текста для ячеек 1-й строки по центру.
	curCell.DefaultCellTextState.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Center;
}

for (int All_Rows = 1; All_Rows <= dataTable.Rows.Count; All_Rows++)
{
	// Пройдитесь по всем ячейкам в 1-й строке и установите для них синий цвет фона.
	foreach (Aspose.Pdf.Cell curCell in tab1.Rows[All_Rows].Cells)
	{
		// Установите цвет фона всех ячеек, кроме 1-й строки.
		curCell.BackgroundColor = Color.Gray;
		// Установите цвет текста для всех ячеек, кроме 1-й строки.
		curCell.DefaultCellTextState.ForegroundColor = Color.White;
	}
}

// Сохранить PDF-файл
pdf1.Save(dataDir + @"Exceldata_toPdf_table.pdf");

Заключение

В этом уроке мы узнали, как экспортировать данные из листа Excel в таблицу PDF с помощью библиотеки Aspose.PDF для .NET. Мы рассмотрели пошаговый процесс загрузки листа Excel, создания документа PDF, добавления таблицы, импорта данных и форматирования таблицы. Теперь вы можете программно генерировать файлы PDF с таблицами, содержащими данные Excel.

Часто задаваемые вопросы

В: Какова цель экспорта данных из таблицы Excel в таблицу PDF?

A: Экспорт данных из листа Excel в таблицу PDF позволяет вам представить данные в структурированном и организованном формате. Это позволяет вам создавать файлы PDF с таблицами, которые содержат данные из листов Excel, что упрощает обмен и сохранение информации в формате переносимого документа.

В: Могу ли я настроить внешний вид таблицы PDF?

A: Да, вы можете настроить внешний вид таблицы PDF, используя различные свойства, предоставляемые Aspose.PDF для .NET. В предоставленном исходном коде C# вы можете изменить ширину столбцов, границы ячеек, выравнивание текста, стиль шрифта и многое другое в соответствии с вашими конкретными требованиями.

В: Как работать с файлами Excel с несколькими листами?

A: В предоставленном коде C# мы получили доступ к первому листу в файле Excel, используя индекс[0] . Если ваш файл Excel содержит несколько рабочих листов, вы можете получить к ним доступ, изменив значение индекса соответствующим образом, например[1] для второго рабочего листа или[2] для третьего рабочего листа.

В: Могу ли я применить различное форматирование к определенным строкам или ячейкам в таблице PDF?

A: Да, вы можете применить различное форматирование к определенным строкам или ячейкам в таблице PDF. В предоставленном исходном коде C# мы продемонстрировали, как форматировать первую строку и чередующиеся строки по-разному, изменяя их цвет фона, стиль шрифта и цвет шрифта. Вы можете применить аналогичные методы форматирования к любым определенным строкам или ячейкам по мере необходимости.

В: Является ли Aspose.PDF для .NET единственной библиотекой, которая позволяет экспортировать данные Excel в таблицу PDF?

A: Aspose.PDF для .NET — это мощная библиотека для работы с PDF-документами в приложениях .NET. Хотя могут быть доступны и другие библиотеки, Aspose.PDF для .NET предлагает широкий спектр функций и возможностей для создания, обработки и экспорта PDF-файлов с таблицами из данных Excel, что делает его популярным выбором для таких задач.