目前我的当前流程如下。查询数据库 - >在本地保存文件 - >使用Excel Interop Dll打开工作簿,对工作簿进行更改,使用Excel Interop Dll另存为。保存的原因是因为我需要一些额外设置,因此文件不能设置为只读。
我遇到的问题是它在本地保存了两次。第一次没问题,第二次出现提示,询问我是否要覆盖。我想知道如何删除本地保存文件进程并将其保存在内存中以便使用?如果我能够在内存中使用该文件,我会在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);
答案 0 :(得分:1)
你最好禁用提示,我记得这是可能的,但这意味着许多用完的代码......
试试这个
Microsoft.Office.Interop.MSProject.Application msProjectApp = new Microsoft.Office.Interop.MSProject.Application();
msProjectApp.DisplayAlerts = false;
修改强>
Microsoft.Office.Interop.Excel.Application msProjectApp = new Microsoft.Office.Interop.Excel.Application();
msProjectApp.Visible = true; //show the application and not need to start a process
msProjectApp.DisplayAlerts = false;
答案 1 :(得分:0)
//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 Only
wb.Save();
删除Process.Start
excel.Visible = true;
excel.DisplayAlerts = false;
答案 2 :(得分:0)
如果您拥有"工作簿可以预先设置好玩,只是加载数据,我发现OleDB Access SQL连接方法是将原始数据加载到SQL的更好方法。