私は現在、必要のない情報を含む先頭の行を含むExcelファイルを使用しています。これらの余分な行は、下のヘッダー行にそのデータをインポートすることにも混乱します。だから私はデータを操作するためにそれらを削除しようとしています。
using (var pack = new ExcelPackage(myFileInfo))
{
// Should return the sheet name
var ws = pack.Workbook.Worksheets.FirstOrDefault();
// Should Delete rows 1-5 and shift up the rows after deletion
ws.DeleteRow(1,5,true);
}
上記のようなことがうまくいくと思っていたのですが、あまり成功していません。
目標は、行1〜5を削除し、残りのデータをシフトアップして(おそらくマージが機能するでしょうか?)、それをデータテーブルに変換することです。
Excelシートから行を削除するためのヒントやリソースがあります(問題が発生する場所であるため、データテーブルに移動する前に)
あなたが持っているコードは最初の5行を削除しますが、修正されたファイルで何かをする必要もあります。次の方法で保存できます。
pack.Save();
または、次の方法で新しい場所に保存します。
pack.SaveAs(new FileInfo(outputFilePath));
完全な例をアップロードしました ここ :
static void Main(string[] args)
{
var myFileInfo = new FileInfo("Demo.xlsx");
using (var pack = new ExcelPackage(myFileInfo))
{
var ws = pack.Workbook.Worksheets.FirstOrDefault();
ws.DeleteRow(1, 5, true);
pack.SaveAs(new FileInfo("output.xlsx"));
}
}
ソリューションをビルドして実行すると、入力ファイル(Demo.xlsx)でこれからデモファイルが変換されることがわかります。
出力ファイルでこれに:
最初の5行が削除され、すべてが上にシフトされます。