このセクションでは、本製品にて 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にバージョンアップするにあたりコードの変更が必要になります。詳細については、リリースノートを参照してください。