Экспорт данных из листа в .NET

Обзор

В этой статье объясняется, как экспортировать данные вашего листа в объект DataTable с использованием C#. Она охватывает следующие темы

Формат: Excel

Формат: XLS

Формат: XLSX

Формат: ODS

Как экспортировать данные Excel с помощью C#

Как экспортировать данные из листа

Aspose.Cells не только облегчает своим пользователям импорт данных в листы из внешних источников данных, но также позволяет экспортировать данные своих листов в DataTable. Как мы знаем, что DataTable является частью ADO.NET и используется для хранения данных. Когда данные хранятся в DataTable, их можно использовать любым способом в соответствии с требованиями пользователей. Разработчики также могут непосредственно сохранять эти данные (хранятся в DataTable) в базу данных при необходимости. Таким образом, мы видим, что разработчикам становится проще манипулировать данными листа, если они экспортируются в DataTable.

Как экспортировать данные в DataTable с помощью Aspose.Cells

Разработчики могут легко экспортировать данные своих листов в объект DataTable, вызывая либо метод ExportDataTable, либо метод ExportDataTableAsString класса Cells. Оба метода используются в различных сценариях, которые подробно обсуждаются ниже.

Столбцы, содержащие строго типизированные данные

Мы знаем, что электронная таблица хранит данные в виде последовательности строк и столбцов. Если все значения в столбцах листа являются строго типизированными (то есть все значения в столбце должны иметь тот же тип данных), то мы можем экспортировать содержимое листа, вызвав метод ExportDataTable класса Cells. Метод ExportDataTable принимает следующие параметры для экспорта данных листа в объект DataTable:

  • Номер строки, номер строки первой ячейки данных, которые будут экспортированы.
  • Номер столбца, номер столбца первой ячейки, из которого будут экспортироваться данные.
  • Количество строк, количество строк для экспорта.
  • Количество столбцов, количество столбцов для экспорта.
  • Экспорт имен столбцов, логическое свойство, указывающее, должны ли данные в первой строке листа быть экспортированы в виде имен столбцов для DataTable или нет.

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

Шаги кода:

  1. Загрузите свой файл Excel в объект Workbook.
    • Объект Workbook может загружать форматы файлов Excel, например XLS, XLSX, XLSM, ODS и др.
  2. Получите доступ к первому Worksheet в файле Excel.
  3. Выберите область экспорта, например 7 строк и 2 столбца, начиная с 1-й ячейки DataTable.
  4. Используйте метод ExportDataTable для экспорта данных в DataTable.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
string filePath = dataDir + "Book1.xlsx";
// Instantiating a Workbook object
Workbook workbook = new Workbook(filePath);
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.Worksheets[0];
// Exporting the contents of 7 rows and 2 columns starting from 1st cell to DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0, 11, 2, true);
foreach (DataRow r in dataTable.Rows)
{
foreach (DataColumn c in dataTable.Columns)
{
Double value = r.Field<Double>(c);
Console.Write(value + " ");
}
Console.WriteLine();
}

Столбцы, содержащие нестрого типизированные данные

Если все значения в столбцах рабочего листа не являются явно заданными типами (это означает, что значения в столбце могут иметь разные типы данных), то мы можем экспортировать содержимое рабочего листа, вызвав метод ExportDataTableAsString класса Cells. Метод ExportDataTableAsString принимает те же параметры, что и метод ExportDataTable, для экспорта данных рабочего листа в объект DataTable.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
string filePath = dataDir + "Book1.xlsx";
// Instantiating a Workbook object
Workbook workbook = new Workbook(filePath);
// Accessing the first worksheet in the Excel file
Worksheet worksheet = workbook.Worksheets[0];
// Exporting the contents of 7 rows and 2 columns starting from 1st cell to DataTable
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 11, 2, true);
foreach (DataRow r in dataTable.Rows)
{
foreach (DataColumn c in dataTable.Columns)
{
string value = r.Field<string>(c);
Console.Write(value + " ");
}
Console.WriteLine();
}

Как экспортировать диапазон с заголовком

Данные из диапазона могут быть экспортированы в DataTable, где доступен флаг для пропуска заголовочной строки в экспортированных данных. Нижеприведенный код экспортирует диапазон данных в DataTable с аргументом ExportTableOptions, который содержит флаг ExportColumnName. Он установлен в true, если информация о заголовке есть, следовательно, ее не будет включено в данные, и установлен в false, если заголовок отсутствует, и все строки должны быть рассмотрены как данные.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string sourceDir = RunExamples.Get_SourceDirectory();
// Instantiating a Workbook object
Workbook workbook = new Workbook(sourceDir + "Names.xlsx");
// Instantiating a WorkbookDesigner object
WorkbookDesigner designer = new WorkbookDesigner(workbook);
// Accessing the range having name "Names"
var range = designer.Workbook.Worksheets.GetRangeByName("Names");
// Instantiating the ExportTableOptions object
ExportTableOptions options = new ExportTableOptions();
// Setting the ExportColumnName flag to true shows that first line is header and not part of data
options.ExportColumnName = true;
// Exporting data with the selected information
var dataTable = range.ExportDataTable(options);

Продвинутые темы