如何使用C#打开具有写保护的Excel文件

时间:2019-06-15 00:30:32

标签: c# excel

我需要自动执行一个过程,为此,我需要打开一个同时受写保护和密码保护的Excel文件。 当您尝试手动打开文件时,它会询问“要打开的密码”和“要修改的密码”,您能否让我知道如何使用C#打开该类型的文件?

2 个答案:

答案 0 :(得分:0)

如果您已经知道该xls文件的密码,则可以安装此Spire.XLS for .NET。 这是一个使用c#解密xls文件的excel组件。 以下是示例代码:

[C#]:

Workbook workbook = new Workbook();

import fs2.Stream

val result =
  // Now the for-comprehension operates on a Stream instead of an Option
  for {
    r <- q.update.withGeneratedKeys[Long]("id")   
    _ <- Stream.eval(insertMany(data)) // insertMany(data) is defined like in the snippet above
  } yield r

result.compile.last

我希望这会有所帮助。

参考: https://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Decrypt-Excel-Worksheet-in-C-VB.NET.html

答案 1 :(得分:0)

基本上,有两种方法可以以编程方式处理Excel(通常是Office文件)。在C#中:

  • InterOp
  • 第三方库

使用interop时,您使用的是安装在计算机上的excel版本,带有库通常不需要excel安装。

大多数库(例如NPOI和closedXML)可以处理“无修改”部分,但是它们缺乏加密(密码保护)文件的能力。 这也很大程度上取决于您使用的是哪个确切版本(最好是最新版本)。

有一个适用于EPPlus的代码示例,它似乎可以对文件(keytool -import -alias "new-public-cert" -keystore /usr/share/tomcat8/webapps/ROOT/WEB-INF/classes/saml/samlKeystore.jks )进行加密。