のメモリ内でExcelファイルを処理するにはどうすればいいですか?データベースのクエリ - >ファイルをローカルに保存 - > Excel Interop Dllを使用してブックを開く、ワークブックを変更する、Excel Interop Dllを使用して名前を付けて保存するファイルを読み込み専用に設定しないように、いくつかの追加設定が必要なため保存する理由があります。私の現在のプロセスに従うと、
問題は、ローカルに2回保存しているということです。最初はうまくいきました。二回目は、オーバーライドしたいかどうかを尋ねるプロンプトが表示されます。私はどのようにファイルをローカルに保存するプロセスを削除し、それをメモリに入れて作業することができるのだろうかと思います。私がメモリ内のファイルで作業することができたら、Save As
にプロンプトを出して、前のファイルを上書きするかどうか聞いてきます。
コード:
//Save File Locally
System.IO.File.WriteAllBytes(saveFileDialog.FileName, Report.FileArray);
var fileLocation = saveFileDialog.InitialDirectory + saveFileDialog.FileName;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
// Open Workbook Using Excel Interop Dll
Workbook wb = excel.Workbooks.Open(fileLocation);
Worksheet ws1 = wb.Worksheets.get_Item("English");
//Make Changes To WorkBook
ws1.Range["E5"].Value = StartDate;
ws1.Range["G5"].Value = EndDate;
// Save AS Using Excel Interop With shared settings to remove read only access
wb.SaveAs(fileLocation, AccessMode: XlSaveAsAccessMode.xlShared);
Process.Start(fileLocation);
Open XML SDKを使用します。これはXLSXファイルのLinq APIです。 Excel COM APIを呼び出すよりもはるかに少ない問題があります。 –
@DavidThielenお勧めします、ありがとうございます! – Master