C# 如何导出文件excel是只读的

C# 如何导出文件excel是只读的,c#,asp.net-mvc,export-to-excel,C#,Asp.net Mvc,Export To Excel,我正在通过StringBuilder导出excel文件。如何为excel文件设置只读 这是我的代码: byte[] fileContents = Encoding.UTF8.GetBytes(sb.ToString()); return File(fileContents, "application/vnd.ms-excel", "FileName" + DateTime.Now + ".xls"); 你不能。您必须保护工作簿,而不是将其设为只读。文件属性不会通过HTTP保留,因此无法强制客

我正在通过StringBuilder导出excel文件。如何为excel文件设置只读

这是我的代码:

byte[] fileContents = Encoding.UTF8.GetBytes(sb.ToString());

return File(fileContents, "application/vnd.ms-excel", "FileName" + DateTime.Now + ".xls");

你不能。您必须保护工作簿,而不是将其设为只读。文件属性不会通过HTTP保留,因此无法强制客户机在文件上设置只读属性(如果可以,客户机可以轻松删除它)


有一些选项可以使工作簿在服务器上受到保护,但是,您必须寻找其他选项,例如。

您不能通过C#打开Excel吗? 如果可以的话;打开文件并使用运行vba

SetAttr("TESTFILE", vbReadOnly)

然后关闭文件

简单的答案是否定的。!但是,如果您使用开放式XML创建excel文件,您可以这样做。谢谢@KCdod,我将尝试开放式XML学习开放式XML并不是那么容易。但是一旦你学会了,它将非常有用。OpenXML在这里不起作用,因为它和文件属性无关。