.NET中从工作表导出数据
概述
本文介绍如何使用C#将工作表数据导出到DataTable。 它涵盖以下主题
格式: Excel
格式: XLS
格式: XLSX
格式: ODS
如何使用C#导出Excel数据
如何从工作表导出数据
Aspose.Cells不仅使用户能够从外部数据源导入数据到工作表,还允许他们将工作表数据导出到一个DataTable。正如我们所知,DataTable是ADO.NET的一部分,并且用于保存数据。一旦数据存储在DataTable中,它可以根据用户的需求以任何方式使用。如果开发人员希望,他们还可以将这些数据(存储在DataTable中的数据)直接存储到数据库中。所以,我们可以看到,如果将工作表数据导出到DataTable,开发人员更容易操作工作表数据。
如何使用Aspose.Cells将数据导出到DataTable
开发人员可以通过调用Cells类的ExportDataTable或ExportDataTableAsString方法轻松将工作表数据导出到一个DataTable对象。这两种方法在不同场景中使用,下面将更详细地讨论这些场景。
包含强类型数据的列
我们知道电子表格将数据存储为一系列行和列。如果工作表的所有列中的值都是强类型的(也就是说,列中的所有值必须具有相同的数据类型),那么我们可以通过调用Cells类的ExportDataTable方法来导出工作表内容。ExportDataTable方法以以下参数将工作表数据导出为DataTable对象:
- 行号,将要从中导出单元格数据的第一个行的行号。
- 列号,将要从中导出数据的第一个单元格的列号。
- 行数,要导出的行数。
- 列数,要导出的列数。
- 导出列名,一个布尔属性,指示是否应该将工作表的第一行数据导出为DataTable的列名。
步骤:导出数据到 DataTable
- 步骤: Excel to DataTable in C#
- 步骤: Convert Excel to DataTable in C#
- 步骤: Import Excel to DataTable in C#
- 步骤: Export to DataTable from Excel in C#
代码步骤:
- 在Workbook对象中加载您的Excel文件。
- Workbook对象可以加载Excel文件格式,如XLS,XLSX,XLSM,ODS等。
- 访问Excel文件中的第一个Worksheet。
- 选择您的导出区域,例如从DataTable的第一个单元格开始的7行和2列。
- 使用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(); | |
} | |
包含非强类型数据的列
如果工作表中的列中的所有值都不是强类型的(表示列中的值可能具有不同的数据类型),那么我们可以调用Cells类的ExportDataTableAsString方法导出工作表内容。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,并使用一个包含ExportColumnName标志的参数ExportTableOptions。如果存在标题信息,它将设置为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); |