Free Support Forum - aspose.com

Aspose.Cells 两个Excel文件合并

@Peyton.Xu xlsx.zip (35.1 KB)
还有一个问题请教一下。
附件里有两个excel文件,001.xlsx和002.xlsx,如果我用aspose.cell分别把这两个文件转为pdf文件(Aspose.Cells.PdfSaveOptions(Aspose.Cells.SaveFormat.Pdf)),那么生成的pdf文件相当完美。

如果我把001和002两个文件用aspose.cell合并excel功能(合并的顺序为001在前,002在后,用Combine方法),另存为新文件的excel文件,再转为pdf(或tiff)文件(Aspose.Cells.SaveFormat.Pdf或Aspose.Cells.SaveFormat.TIFF),会出现生成的pdf或tiff文件中的单元格的内容没有完全显示出来(如附件中的显示不全.jpg (52.2 KB)

在001.xlsx和002.xlsx两个文件中的页面设置、边距之类的我已经设置一样,我也试过aspose.cell 18.4和20版本,都会出现这个问题,不知道该如何解决,麻烦支一下招,谢谢。

@sweetime

001.xlsx和002.xlsx的默认字体不一样:001.xlsx的默认字体为“宋体”,11 ,002.xlsx的默认字体为“Calibri”,11,默认字体的变化会导致列宽和页面缩放不同,导致合并后输出不一致。
您可以使用以下代码,将002.xlsx的默认字体设为跟001.xlsx的默认字体一样:

string path = ...
Workbook wb1 = new Workbook(path + "001.xlsx");
Console.WriteLine("001.xlsx default font: " + wb1.DefaultStyle.Font);

Workbook wb2 = new Workbook(path + "002.xlsx");
Console.WriteLine("002.xlsx origin default font: " + wb2.DefaultStyle.Font);
Console.WriteLine("002.xlsx Column D origin width: " + wb2.Worksheets["分部分项工程量清单计价表"].Cells.GetColumnWidthPixel(3));
Style style2 = wb2.DefaultStyle;
style2.Font.Name = wb1.DefaultStyle.Font.Name;
wb2.DefaultStyle = style2;
Console.WriteLine("002.xlsx changed default font: " + wb2.DefaultStyle.Font);
Console.WriteLine("002.xlsx Column D changed width: " + wb2.Worksheets["分部分项工程量清单计价表"].Cells.GetColumnWidthPixel(3));

wb1.Combine(wb2);
Console.WriteLine("Combined workbook default font: " + wb1.DefaultStyle.Font);

wb1.Save("combined.pdf");

但是,建议您在开始设计/生成001.xlsx和002.xlsx时,就将它们的默认字体设为一致(中文建议设成“宋体”,11),不然,合并后,可能会有许多不一致的地方(与合并前相比)。

搞定了,十分感谢。没想到excel中还有缺省字体这一说法。赞赞赞

很高兴您的问题得到了解决,后续有任何问题,您可以随时联系我们!