.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にデータをエクスポート

コードの手順:

  1. WorkbookオブジェクトにExcelファイルをロードします。
    • Workbookオブジェクトは、XLS、XLSX、XLSM、ODSなどのExcelファイル形式を読み込むことができます。
  2. Excelファイル内の最初のWorksheetにアクセスします。
  3. 1番目のDataTableのセルから始まる7行2列など、エクスポートするエリアを選択します。
  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();
}

非型指定データを含む列

ワークシートの列のすべての値が強く型指定されていない場合(つまり、列の値には異なるデータ型がある可能性がある)、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);

高度なトピック