DioDocs for Excel
DioDocs for Excel
xlsx ファイルのインポートとエクスポート
ファイル操作 > xlsx ファイルのインポートとエクスポート

このセクションでは、本製品にて xlsx ファイルを処理する方法について紹介しています。

本製品を使用してワークブックを作成して保存すると、自動的に外部の場所やフォルダに xlsx ファイルが出力されます。また、xlsx ファイルを開き読み込む際、対象のファイルのモデル全体を読み込むか、データのみを読み込むかを選択することができます。 本製品で xlsx ファイルを開くには、Open メソッドを使用します。この際、XlsxOpenOptions クラスの ImportFlags プロパティを指定することで、読み込む要素を指定してファイルを開くことができます。ワークブックを xlsx ファイルとしてエクスポートするには、Save メソッドを使用します。この際、様々な保存オプションを使用して、何をスキップして何をエクスポートするかを指定することができます。インポートおよびエクスポートのオプションの詳細については、「インポートとエクスポートのオプション」を参照してください。

次のサンプルコードは、ファイル名を指定して xlsx ファイルをインポートしエクスポートする方法を示しています。

C#
コードのコピー
// 新しいワークブックを作成します
Workbook workbook = new Workbook();

// xlsx ファイルを開きます
workbook.Open(Path.Combine("Resource", "Basic sales report1.xlsx"), OpenFileFormat.Xlsx);

// ワークブックを xlsx ファイルとして保存します
workbook.Save("Exported.xlsx", SaveFileFormat.Xlsx);

次のサンプルコードは、ファイルストリームから xlsx ファイルをインポートしエクスポートする方法を示しています。

C#
コードのコピー
// ファイルストリームを作成してファイルを開きます
using FileStream openFile = new FileStream(Path.Combine("Resource", "Basic sales report1.xlsx"), FileMode.OpenOrCreate, FileAccess.Read);

// 新しいワークブックを作成します
var streamworkbook = new GrapeCity.Documents.Excel.Workbook();

// xlsx ファイルを開きます
streamworkbook.Open(openFile, OpenFileFormat.Xlsx);

// 新しいファイル ストリームを作成してファイルを保存します
using FileStream saveFile = new FileStream("Exported-Stream.xlsx", FileMode.OpenOrCreate, FileAccess.ReadWrite);

// ワークブックを xlsx ファイルとして保存します
streamworkbook.Save(saveFile, SaveFileFormat.Xlsx);

もう 1 つの一般的なシナリオとして、スプレッドシートやセル範囲からデータのみをインポートする必要がある場合があります。このようなシナリオに対応するために、ImportData メソッドを使用して外部ワークシートまたはセル範囲から効率的にデータのみを読み込むことができます。データのみのインポートの詳細については、以下の「データのみのインポート」を参照してください。

データのみのインポート

指定されたワークシートやセル範囲からデータのみをインポートするには、本製品がワークシートを開いてデータを取得するImportDataメソッドを使用します。このメソッドは、データのみが必要で、残りのオブジェクトモデルを処理する必要がない場合に便利です。 ImportDataメソッドは、ファイルやファイルストリームの名前とソース名を主なパラメータとして使用します。データソースとして、ワークシート、テーブル、または範囲を指定することができます。あるファイルやファイルストリームで使用されるワークシートおよびテーブルの名前を取得するには、使用可能なソース名を配列として返すWorkbookクラスのGetNamesメソッドを使用します。

C#
コードのコピー
//新しいワークブックを作成します
var workbook = new GrapeCity.Documents.Excel.Workbook();

//Excelファイルを開きます
var fileStream = File.Open("AgingReport.xlsx", FileMode.Open);

//ファイル内の取り込み可能な名前を取得します
//names[0]とnames[1]はシート名:「Aging Report」「Invoices」
//names[2]とnames[3]はテーブル名:「'Aging Report'!tblAging」「Invoices!tblInvoices」
var names = GrapeCity.Documents.Excel.Workbook.GetNames(fileStream);

//fileStream からテーブル「'Aging Report'!tblAging」のデータを取り込みます
var data = GrapeCity.Documents.Excel.Workbook.ImportData(fileStream, names[2]);

//現在のワークブックにデータを割り当てます
workbook.Worksheets[0].Range[0, 0, data.GetLength(0), data.GetLength(1)].Value = data;

//Excelファイルに保存します
workbook.Save("importdatafortable.xlsx");

複数のシートや多くの数式を含む重いファイルを扱う場合、データのみを読み込むImportDataメソッドを使用することで、読み込みのパフォーマンスを向上できます。また、ImportDataメソッドは、対象セルの範囲を指定できるオーバーロードもあり、ファイルに大量のデータが含まれていても、特定の部分のみを読み込むことができます。

制限

メモ: V5JSP1にて、ImportDataメソッドのパラメータの名前がworksheetNameからsourceNameに変更されました。これにより、以前のバージョンを使用しているユーザーがImportDataメソッドを呼び出す際にパラメーター名「worksheetName」を使用していた場合、V5JSP1にバージョンアップするにあたりコードの変更が必要になります。詳細については、リリースノートを参照してください。