使用Aspose Words 16.7.0.0嵌入Excel至Word时无法保留文件名
解决Aspose.Words嵌入Excel时文件名不保留的问题
问题原因
使用InsertOleObject(Stream, ...)重载插入Excel对象时,Aspose.Words无法从流中提取原文件名信息,导致Word打开嵌入对象时使用默认临时文件名,而非你指定的文件名。
解决方案
你可以通过两种方式解决这个问题:
方式一:直接使用文件路径插入OLE对象
既然已经生成了临时Excel文件,直接传入文件路径而非流,Aspose.Words会自动读取并保留文件名:
// 替换第三步的代码 builder.InsertOleObject(temporaryExcelFilePath, "Excel.Sheet.12", true, iconImage);
方式二:通过OlePackage手动指定文件名(流场景适用)
如果必须使用流插入,可创建OlePackage对象并设置DisplayName和FileName,明确告知Word嵌入对象的文件名:
using (Stream fileStream = File.OpenRead(temporaryExcelFilePath)) { OlePackage olePackage = new OlePackage(); olePackage.FileName = excelFileName; // 设置文件名 olePackage.DisplayName = excelFileName; // 设置显示名称 builder.InsertOleObject(fileStream, "Excel.Sheet.12", olePackage, iconImage); }
补充说明
两种方式都能让Word打开嵌入的Excel时显示你指定的excelFileName。方式一更简洁,方式二更适合无法直接使用文件路径的场景(比如流来自网络或内存)。
内容的提问来源于stack exchange,提问作者Luka Kalinić
相关产品推荐
相关产品推荐

