在C#中用密码打开Excel,并从外部closuresExcel
我正在寻找一种方法来在我的C#程序中打开Excel中的密码保护的Excel文件。
请注意,我只需要为我的用户打开它。 我不想找像Excel Interop这样的文件来修改文件。
对于没有密码的文件,我可以简单地启动以完整path文件名作为参数的进程启动。 但是这个里面有密码,所以不能这样做。
如果我使用Excel interope打开它,我可以打开它,但Excel过程将在用户closuresExcel窗口时离开那里。
var excelApp = new Excel.Application(); excelApp.Visible = true; var wb = excelApp.Workbooks.Open(@"d:\temp\test.xlsx", Password:"1234");
由于用户将在Excel窗口中修改文件,然后closures窗口。 这部分是我无法控制的。 我只是想启动文件,然后我不必关心它。 但是通过使用Excel interope,COM实际上是参照我的c#程序,所以整个Excel过程不能完全处理。
我想我知道一个解决方法。
创build一个名为OpenExcelWorkbookWithPassword.exe
的助手C#控制台应用程序,它看起来像这样:
static void Main(string[] args) { var excelapp = new Excel.Application(); excelapp.Visible = true; Excel.Workbook workbook = excelapp.Workbooks.Open(args[0], Password: args[1]); }
并使用以下代码在主应用程序中使用它:
string path = @"d:\temp\test.xlsx"; string pw = "1234"; System.Diagnostics.Process.Start("OpenExcelWorkbookWithPassword.exe", path + " " + pw);
当用户closuresExcel时,即使您的主应用程序仍在运行, Excel.exe
进程也将被终止。