1

我有一个Excel模板,用于为我们的供应商创建 PDF 规格表。我可以很好地打开、操作和导出到 PDF 文件,除非我插入图片。这是我用来添加一张图片的代码

workSheet.Shapes.AddPicture(imagePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 120, 700, image.Width, image.Height);

这是保存 PDF 文件的代码:

private void createPDF()
{
     if (File.Exists(path + basePart.Number + ".pdf"))
         File.Delete(path + basePart.Number + ".pdf");
     workBook.Saved = true;
     workSheet.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, path + basePart.Number, Excel.XlFixedFormatQuality.xlQualityStandard, true,
                false, Type.Missing, Type.Missing, true, Type.Missing);
     DisposeExcelInstance();
}

没有任何图像,PDF 文件可以很好地保存。对于图像,PDF 文件会保存但无法打开。为了以防万一,我尝试了多个 PDF 文件阅读器,但肯定它们都不起作用。

编辑:

我尝试了各种 Excel 格式,但都没有奏效。似乎ExportAsFixedFormat不适用于图像,无论它们如何插入到文档中。有没有替代方案?

4

2 回答 2

3

微软要感谢这一点。在具有多种文件格式和 PDF 文件工具的多台计算机上进行了 6 小时或多或少的撞墙测试,我发现这是与 Excel 2010 的兼容性问题。

我终于得到了一台备用笔记本电脑,这样我就可以停止让其他人在他们的 PC 上测试东西了,笔记本电脑上有 Excel 2007,它就像一个魅力。信不信由你,实际问题是,在使用 Excel 2007(最初内置模板的版本)时,有人将其放入“页面布局”视图中,该视图在 Excel 2007 及更早版本上创建带有图片的 PDF 文件。

使用 Excel 2010,它有时可以让我摆脱页面布局视图,但绝不会使用图片。我希望我在弥补。我认为视图与电子表格的功能没有任何关系。这是一个非常具体的问题,但希望有一天它可以让人们头疼。

于 2011-06-01T20:27:07.130 回答
0

https://stackoverflow.com/a/6207214/713819

确实如此。你说的对。我也遇到了这个问题。我以前使用 MS Excel 2007 创建了一个 MS Excel 模板,但我仍在使用它。但是,当我想使用相同的模板(我之前手动更新)自动生成报告并将图像插入工作表时,它从未出现在打印预览(MS Excel 2016)中。我尝试将 Excel 报告保存为 PDF,但 PDF 中也没有显示图像。

最后,我不得不在 MS Excel 2016 中重新创建模板,然后问题就解决了。简而言之,这是微软 Excel 中的一个兼容性错误,微软仍未修复。

无论如何,谢谢你!

于 2020-09-16T12:30:19.743 回答