Windows Server 2012 R2 中的 Excel Interop(插入图像)

标签 excel office-interop excel-interop

我们正在将 Web 应用程序从 Windows 2003 迁移到 Windows 2012 R2。

该应用程序具有 Excel 报告功能。我们使用 Interop 打开 Excel(模板文件)并写出一些数据并插入服务器中特定文件夹中的图像。

MS Office版本是2007年。奇怪的是,插入图像功能仅在图像大小小于20 kb时才起作用,一旦应用程序尝试插入大于20 kb(例如250 kb)的图像,系统就会挂起,就好像没有获得足够的内存来完成工作,并且 excel.exe 在任务管理器中挂起。

在 Dcomcnfg 中,Excel 在“启动用户”身份下运行。

IIS 应用程序池正在使用网络服务来运行应用程序。

插入图像的代码如下所示,但是由于它在 Windows 2003 中运行,因此我们没有进行任何更改

public void InsertImage(string imagePath, float leftPosition, float topPosition, float   imageWidth, float heightImage)
    {
        if (!File.Exists(imagePath))
            throw new   OfficeHelperException(OfficeHelperException.ExceptionType.ImageFileNotFound);

        WorkingSheet.Shapes.AddPicture(
            imagePath,
            Microsoft.Office.Core.MsoTriState.msoFalse,
            Microsoft.Office.Core.MsoTriState.msoCTrue,
            leftPosition,
            topPosition,
            imageWidth,
            heightImage);
    }

新的windows 2012 r2有内存分配设置吗? Web 应用程序还有其他没有图像导出功能的 Excel 报告,但它们工作正常。

我们尝试通过在模板文件中放置一个宏来删除此插入图像功能,该宏将插入图像并从互操作中调用该宏。它在本地计算机上工作,但在服务器上,当图像大小大于 20 kb 时,它再次挂起。

我们陷入了困境,并且不确定 Windows Server 2012 R2 是否存在与 Excel 互操作相关的任何已知问题。任何建议将不胜感激。

最佳答案

我将参数 MsoTriState LinkToFile 设置为 true 并且工作正常!我使用的是 Win 2012 R2 和 Excel 2010 x64。

例如:

oHoja.Shapes.AddPicture(HttpContext.Current.Server.MapPath("~/images/logos/57/teix.png", 
     MsoTriState.msoCTrue, MsoTriState.msoCTrue,float.Parse(3.ToString()), 
     float.Parse(65.ToString()), 
     float.Parse("113"), 
     float.Parse("54"));

祝你好运!

关于Windows Server 2012 R2 中的 Excel Interop(插入图像),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142235/

相关文章:

c# - Microsoft.Office.Interop.Word : add caption to image in C#

c# - C# 代码中的 Excel 引用问题

excel - 如何获取默认的 Excel 工作表字体?

c# - Word 互操作移动表行

c# - Excel 互操作阻止显示密码对话框

azure - 如何将 Microsoft Office 互操作与 Azure 应用服务结合使用

Python Pandas 将列从一张纸复制到另一张纸而不更改任何数据?

vba - 圆函数 VBA EXCEL

excel - excel中如何对每一行求和?

sql-server - 包验证错误 : 0xC020801C excel connection