oledb の使用を試みた後、epplus ライブラリの使用を開始し、相互運用を試みました。
以下は私が取り組んでいるものです
public void editExcel_VariablesEEP()
{
try
{
FileInfo newFile = new FileInfo(excelQuotePath);
ExcelPackage pck = new ExcelPackage(newFile);
var energyCalculation = pck.Workbook.Worksheets[4];
var ROI = pck.Workbook.Worksheets[3];
var NPV = pck.Workbook.Worksheets[2];
var Summary = pck.Workbook.Worksheets[1];
energyCalculation.Cells["B5"].Value = Convert.ToDecimal(numericUpDown1.Value);
energyCalculation.Cells["B6"].Value = numericUpDown2.Value;
energyCalculation.Cells["B7"].Value = numericUpDown3.Value;
energyCalculation.Cells["B8"].Value = numericUpDown4.Value;
NPV.Cells["B12"].Value = (numericUpDown5.Value/100);
NPV.Cells["B13"].Value = (numericUpDown6.Value / 100);
NPV.Cells["B14"].Value = (numericUpDown7.Value / 100);
energyCalculation.Cells["F40"].Value = (numericUpDown8.Value / 100);
energyCalculation.Cells["L5"].Value = numericUpDown9.Value;
energyCalculation.Cells["G60"].Value = (comboBox1.Text);
Summary.Cells["K2"].Value = (quoteName.Text);
pck.Save();
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
原因は不明ですが、正しく保存されます。Visual Studio にエラーは表示されません。しかし、xlsx ファイルを開くと、「ファイルが壊れています」というプロンプトが表示されます。次に、修正に同意します。エラーは次のように表示されます - 削除されたパーツ: 図形を描画します。しかし、Excel を確認すると、すべてのデータが存在し、説明されています。
これに詳しい方、助けてください。
ありがとう。
//テストの更新 フォローするために、私がやっていることで、テンプレート xlsx ファイルを別のフォルダーにコピーし、投稿した上記のコードを実行して保存します。新しく編集した xlsx ファイルをロードすると、エラーが表示されます。修正を確認してから、保存/上書きします。次に、プログラムを再度実行しますが、代わりにファイルを指定しました。それは保存します。実行しましたが、エラーは表示されません。何かが起きて、何が何だかわからない。
//Update2
それで、これまでに何が起こったのか。エラーはその説明で正しかった。問題を起こすイメージでした。小さい画像だったのですっかり見落としていました。私がしなければならなかった修正は、画像を右クリックして「サイズとプロパティ」メニューのいくつかの設定を変更することでした. プロパティタブで、「セルに合わせて移動またはサイズ変更しない」をチェックし、印刷オブジェクトとロックされたチェックボックスをチェックしました。最後に、サイズタブの下で、「縦横比を固定」にチェックを入れました。読み込み時にエラーは表示されませんでした。しかし、ファイルサイズを観察すると、Excelを開いて閉じるたびに、変更を加えていなくても保存を要求するため、画像が「保存」されていないようです。保存を確認すると、ファイルサイズが異なります(サイズが大きくなります)。この「奇妙な保存」がファイルの再オープンやさらなる編集に影響するかどうかをテストしてみました。そして良かった。問題ありません、再開します。しかし、「奇妙な保存」は持続しました。