11

EPPLUS 4.0.3 を使用して、XLSX ファイルをテンプレートとして開こうとしています (空白の XLSX ファイルも使用しました)。

テンプレート ファイル (空白または実際のファイル) を開かずに、新しいワークブックを作成してシートを作成すると、正常に動作します。または、テンプレート ファイルを開いて新しいワークシートを作成すると、正常に動作します。テンプレートの最初のシートにアクセスしようとしたときにのみ、エラーが発生します:ワークシートの位置が範囲外です。

このような最初のワークシートへのアクセス: 機能しworkBook.Worksheets.First()ません。

最初はもはや定義ではありません。

そのため、名前で最初のワークシートにアクセスし、このメソッドworkBook.Worksheets[1]で 0 と 1 の両方を使用して最初のシートを取得しようとしました。

私のコード:

    var existingTemplate = new FileInfo(_ExcelTemplateFilePath);
    using (ExcelPackage p = new ExcelPackage(existingTemplate)) {
    // Get the work book in the file
    ExcelWorkbook workBook = p.Workbook;
    ExcelWorksheet ws = workBook.Worksheets[1];
    // MY OTHER EXCEL CELL CODE HERE    
}}

Excelファイルの最初のシートにアクセスする方法を知っている人はいますか?

4

4 に答える 4

13

ワークシートをインデックスではなく名前で参照することで、この問題を回避できました。

var oSheet = package.Workbook.Worksheets["My Worksheet Name"];
于 2016-04-11T17:49:01.810 に答える
7

最初のシートを取得するには、以下のコードを使用してください

    var xlWorkbook = new ExcelPackage(new FileInfo(@"C:\ESD\EXCELDATAREADTEST.xlsx"));

ExcelWorksheet workSheet = xlWorkbook.Workbook.Worksheets[1];

ワークブックの正しい場所を指していることを確認してください

于 2016-07-27T21:54:25.423 に答える