SetHeaderPicture轉存ods後無效

當其儲存為ods格式時,不知為何其設定 pageSetup.SetHeader(1, “&G”);無效

@cchuang,

您能否请使用缩小的代码段和屏幕截图分享模板文件和输出文件,以便我们调查并帮助您。

您好:
下方是程式段
Dim pageSetup As Aspose.Cells.PageSetup = Nothing
Dim imgbteRead() As Byte = IO.File.ReadAllBytes(m_strTempPath)
pageSetup = sht.PageSetup
pageSetup.SetHeaderPicture(1, imgbteRead)
pageSetup.SetHeader(1, “&G”)

下方是正確的結果,於Excel顯示為正常
right.jpg (63.4 KB)

下方是儲存為ods檔,其設定之圖不會顯示
error.jpg (72.0 KB)

@cchuang,

我们还需要您的输入文件,完整代码(可运行)以及问题的一些更多细节。 请解释一下场景以及您对输出的期望。

下方是完整代码
ConsoleApp1.zip (5.2 MB)
下方是產生之Excel檔,於開啓後,點選檔案->列印,所看到之預覽結果,其背景圖有顯示
Right.jpg (87.9 KB)
下方是產生之Ods檔,使用libreoffice開啓後,點選檔案->列印預覽,所看到之預覽結果,其背景圖沒顯示
Error.jpg (47.6 KB)
输出的期望:输出ods檔時使用libreoffice開啓後,所看到之預覽結果,其背景圖應該也要顯示

@cchuang,

我们能够观察到这个问题,但我们需要更多地研究它。 我们已将此问题记录在我们的数据库中以供调查和修复。 有一次,我们将为您提供一些新闻,我们将在此主题中为您更新。
此问题已记录为

CELLSNET-46685  - SetHeaderPicture轉存ods後無效

@cchuang,

我们已经调查了一下。 ODS不支持页眉中的图片。 所以我们无法插入标题图片。

使用LibreOffice開啓ods檔,點選『格式』→ 『頁面』,再點選『背景』→ 設定填充為『圖形』→ 『瀏覽』即可設定背景圖,如下:
ods.jpg (28.9 KB)
應可使用背景圖

@cchuang,

我们已重新讨论这个问题,以便进一步调查。 有一次,我们将为您提供一些新闻,我们将在此主题中为您更新。

@cchuang,

有价值的答案中描述的ODS文件的背景与MS Excel页眉和页脚图不同。 MS Excel页眉和页脚中的图像嵌入在页眉和页脚中,但ODS背景位于页眉下方或页脚上方,并且将是打印页面的背景。单个API不支持背景和页眉/页脚图像。如果您需要能够设置ODS背景,我们必须创建一个支持它的新API,但我们无法将其保存到Excel文件中。

您好,
我還是需要能够设置ods背景,麻煩您了,謝謝。

@cchuang,

我已经记录了一个胎儿请求CELLSNET-46695,它将允许您从头开始在ODS文件中设置背景图片。 但是,如果Excel工作簿转换为ODS,它可能仍然无法保存背景图片,因为ODS和Excel之间的功能不同。

@cchuang,

请尝试我们的最新版本/修复:Aspose.Cells for .NET v19.4.3:

Aspose.Cells19.4.3 For .Net4.0.Zip (4.9 MB)
Aspose.Cells19.4.3 For .NetStandard20.Zip (4.0 MB)
Aspose.Cells19.4.3 For .Net2_AuthenticodeSigned.Zip (4.9 MB)

你的问题应该修复它。

请告诉我们您的反馈意见。

請問可以直接撰寫語法去新增背景图片嗎?
因背景图片並非固定,無法直接於ods檔設定,需由語法新增。

@cchuang,

您可以使用以下代码设置背景:

Workbook workbook = new Workbook();
PageSetup ps = workbook.Worksheets[0].PageSetup;
ODSPageBackground b = ps.ODSPageBackground;
b.Type = ODSPageBackgroundType.Graphic;
b.GraphicData = File.ReadAllBytes(Constants.sourcePath + "image1.png");
b.GraphicType = ODSPageBackgroundGraphicType.Area;
workbook.Save(Constants.destPath + "CellsNet46695_1.ods"); 

希望这可以帮助。

@cchuang,

请注意,我们添加了新的命名空间“Aspose.Cells.ODS”,所以不要忘记在程序中导入它。或者,您可以尝试使用对象的完全限定命名。

您好,
請問设置ods背景,使用ODSPageBackgroundGraphicType.Area方式會依據內容之範圍設定背景,不知是否有辦法設定在該列印紙張之中間,而不是顯示在資料範圍中間嗎?麻煩您了,謝謝。

@cchuang,
你能否用OpenOffice创建这样的样本文件作为预期的输出。

The issues you have found earlier (filed as CELLSNET-46695) have been fixed in Aspose.Cells for .NET v19.5. This message was posted using BugNotificationTool from Downloads module by Amjad_Sahi