Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我引用ASP.Net中缺少的值时,Microsoft.Office.Interop.Word库出现空引用异常_Asp.net_Office Interop - Fatal编程技术网

当我引用ASP.Net中缺少的值时,Microsoft.Office.Interop.Word库出现空引用异常

当我引用ASP.Net中缺少的值时,Microsoft.Office.Interop.Word库出现空引用异常,asp.net,office-interop,Asp.net,Office Interop,} 当我分配给para1时,它给出了错误- 对象引用未设置为对象的实例 在我的本地机器上,它工作正常。但在远程计算机上,它给出了错误。 注意-MS Office安装在服务器上。Microsoft目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为在这种环境下运行Office时,Office可能会表现出不稳定的行为和/或死锁。 如果您正在构建一个在服务器端上下文中运行的解决方案,那么您应

}

当我分配给para1时,它给出了错误- 对象引用未设置为对象的实例

在我的本地机器上,它工作正常。但在远程计算机上,它给出了错误。
注意-MS Office安装在服务器上。

Microsoft目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为在这种环境下运行Office时,Office可能会表现出不稳定的行为和/或死锁。

如果您正在构建一个在服务器端上下文中运行的解决方案,那么您应该尝试使用安全的组件来无人值守地执行。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方案。如果使用服务器端解决方案中的Office应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将面临整体解决方案稳定性方面的风险。你可以在这篇文章中了解更多


如果只处理opel XML文件格式文档,请考虑使用OpenXMLSDK。如果需要使用二进制文件,请查找任何支持服务器端执行的第三方组件

Microsoft目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为在这种环境下运行Office时,Office可能会表现出不稳定的行为和/或死锁。

如果您正在构建一个在服务器端上下文中运行的解决方案,那么您应该尝试使用安全的组件来无人值守地执行。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方案。如果使用服务器端解决方案中的Office应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将面临整体解决方案稳定性方面的风险。你可以在这篇文章中了解更多

如果只处理opel XML文件格式文档,请考虑使用OpenXMLSDK。如果需要使用二进制文件,请查找任何支持服务器端执行的第三方组件

您应该在场景中使用OpenXML,而不是Interop(Office COM)。但是掌握OpenXML是一项相当艰巨的任务,大多数人很快意识到,只要购买一些使用OpenXML的工具包并立即投入生产,就可以获得回报

一个可能非常适合您需要的工具是。它是OpenXML工具包(它是许可的第三方产品)。您可以从头开始以编程方式创建文档对象模型。从这个角度来看,它会给您类似的结果,就像使用Office COM一样。您可以选择.docx或.pdf输出

对于以.docx和.pdf格式输出的基于模板的报告,它也非常方便。我们公司已经使用它好几年了,我们已经使用这个工具包开发了我们的大多数报告。报表模板是使用专门的外接程序在Word中设计的。它非常简单,甚至一些最终用户已经在设计报告了。模板包含数据的可视布局、格式和占位符

一旦模板准备好,就可以从任何.NET应用程序调用它,其中数据以.NET对象的形式准备(例如,从数据库或XML)。然后,使用两行代码生成最终文档,其中模板和数据合并在一起。最后一个文档是纯.docx文档。

您应该在场景中使用OpenXML,而不是Interop(Office COM)。但是掌握OpenXML是一项相当艰巨的任务,大多数人很快意识到,只要购买一些使用OpenXML的工具包并立即投入生产,就可以获得回报

一个可能非常适合您需要的工具是。它是OpenXML工具包(它是许可的第三方产品)。您可以从头开始以编程方式创建文档对象模型。从这个角度来看,它会给您类似的结果,就像使用Office COM一样。您可以选择.docx或.pdf输出

对于以.docx和.pdf格式输出的基于模板的报告,它也非常方便。我们公司已经使用它好几年了,我们已经使用这个工具包开发了我们的大多数报告。报表模板是使用专门的外接程序在Word中设计的。它非常简单,甚至一些最终用户已经在设计报告了。模板包含数据的可视布局、格式和占位符


一旦模板准备好,就可以从任何.NET应用程序调用它,其中数据以.NET对象的形式准备(例如,从数据库或XML)。然后,使用两行代码生成最终文档,其中模板和数据合并在一起。最终文档是纯.docx文档。

谢谢Astafiev。如果你能为我提供一些关于如何在asp.net中使用开放式xml的好链接,那将是一个真正的帮助。谢谢Astafiev。如果你能给我提供一些关于如何在asp.net中使用开放式xml的好链接,那将是一个真正的帮助。
Application msWord = new Microsoft.Office.Interop.Word.Application();
Document doc;
object objMiss = System.Reflection.Missing.Value;
object endofdoc = "\\endofdoc";

protected void Page_Load(object sender, EventArgs e)
{

    if (!IsPostBack)
    {

        // add blank documnet in word application

        doc = msWord.Documents.Add(ref objMiss, ref objMiss, ref objMiss, ref objMiss);
     Microsoft.Office.Interop.Word.Paragraph para1;

        // add paragraph with document

        para1 = doc.Content.Paragraphs.Add(ref objMiss);
   }