gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 22:58:46 25 4
gpt4 key购买 nike

我们正在将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com