.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メソッドを呼び出すことでワークシートの内容をDataTableオブジェクトとしてエクスポートできます。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オブジェクトは、XLS、XLSX、XLSM、ODSなどのExcelファイル形式を読み込むことができます。
- Excelファイル内の最初のWorksheetにアクセスします。
- 1番目の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メソッドは、ワークシートデータをDataTableオブジェクトとしてエクスポートするためにExportDataTableメソッドと同じセットのパラメータを受け取ります。
// 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にはエクスポートされたデータでヘッダー行をスキップするフラグが含まれています。次のコードは、データの範囲をDataTableにエクスポートし、ヘッダー情報がある場合にはtrueに設定されるExportColumnName含む引数ExportTableOptionsを使用します。そのため、データが含まれていない場合は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); |