c# - 从外部托管的应用程序和数据库导出数据

时间:2015-06-25 12:53:39

标签: c# office-interop

我在C#中构建一个Web应用程序,需要一个导出数据的工具。 我在本地测试时最初导出到Excel并且这很好用,但是由于应用程序托管在外部服务器上,我认为由于Microsoft.Office.Interop.Excel而无法正常工作,这是正确的吗?

2 个答案:

答案 0 :(得分:3)

你是对的,微软不鼓励在网络应用程序中实现Excel自动化:

https://support.microsoft.com/en-us/kb/257757?wa=wsignin1.0

但你仍然有一些选择。如果您只需要导出数据,您仍然可以为CSV导出一个CSV格式的文件,它应该在Excel中打开。如果您确实需要使用Excel格式编写,则可以使用Open XML SDK for Office(https://msdn.microsoft.com/en-us/library/office/bb448854.aspx?f=255&MSPPError=-2147217396)。

另一个选项是保存数据,让服务器在IIS外部的批处理过程中运行Excel自动化,并将报告发送给用户。

答案 1 :(得分:2)

要使用Microsoft.Office.Interop.Excel,您需要安装Office AFAIK。

您可以通过几种方法将数据导出到Excel:

  1. 创建常规旧CSV文件。 Excel可以打开和编辑此类文件。无论如何,以这种方式提供数据可能是一个好主意,因为它是一种可移植和开放的格式。
  2. 使用SpreadsheetML创建Excel文档。您不会以这种方式使用Excel的所有功能,但您可以向文档添加更多格式信息,并且Excel可以轻松打开它。我相信其他电子表格软件也支持此功能。