2017-10-18 11 views
1

私は、Excelのデータがあるexcelの行数が であることを知っているので、ハードコード値を提供しています。私のプログラムは、Excelシートをクリアして新しいデータをExcelシートで読み込む方法を知りたいです。 EPPlus v4.1.1を使用してこれを達成するにはどうすればよいですか?EPPLusライブラリを使用してExcelで行をクリアするにはどうすればよいですか?

マイコード:*

using (ExcelPackage xlPackage = new ExcelPackage(new System.IO.FileInfo(sourcefile + fileName))) 
       { 
        ExcelWorksheet ws = xlPackage.Workbook.Worksheets[myWS]; 

        int hardCodedRowNumber = 300; 

        ws.DeleteRow(2, hardCodedRowNumber); 
// Other codes to import data from db after clearing excel 
    } 

答えて

0

私が最も簡単で確実な方法は、ワークシート全体を削除することであると思います。

var oldSheet = xlPackage.Workbook.Worksheets[myWS]; 
xlPackage.Workbook.Worksheets.Delete(oldSheet); 
var newSheet = xlPackage.Workbook.Worksheets.Add("MyNewSheet"); 

そしてそこから1行目をセットアップします。

あなたはそのまま、あなたが最初に新しいワークシートを作成し、古いワークシートを削除する前に、一方から他方へ行をコピーすることができますライン1を維持するために努力している場合:代わり

oldSheet.Cells[1, 1, 1, oldSheet.Dimension.End.Column].Copy(newSheet.Cells[1, 1]); 

、独自のメソッドを使用して"hardCodedRowNumber"を

と置き換えることができます。
ws.Dimension.End.Row 
+0

Excelで他のシートを参照する機能を持つ列がいくつかあります。だから私はそれらの列と数式を保持したいと思います。私がやった時間は、私は手動ですべてのデータを削除し、テンプレートとしてExcelファイルを保存し、私はレポートを作成する必要があるたびに、私はファイルをコピーし、別の場所に保存し、データをインポートします。私は、ws.Dimension.End.Rowを使って独自のメソッドを作成する方法を教えてください。ありがとうございます。 – Nepsydaz

+0

ws.DeleteRow(2、hardCodedRowNumber);を置き換えてください。 ws.DeleteRow(2、ws.Dimension.End.Row); –

+0

ws.DeleteRow(2、ws.Dimension.End.Row);これは賢明だった。しかし、私は別の問題に遭遇しました。行の一部の列には数式/関数があります。行を削除している間も、関数はクリアされます。行をクリアするのではなく、特定の列をクリアする方法はありますか? – Nepsydaz

関連する問題