这是测试样本的文件
1.zip (35.3 KB)
@Lycheng
通过查看你的样例文件,可以发现你对46、47、48和59这几行设置了整行的样式。所以在导出时会出现很多空白页。你有两种方式来解决空白页的问题。
- 设置打印区域为A1:R102。样例代码如下:
Workbook wb = new Workbook(filePath + "1.xlsx");
Worksheet sheet1 = wb.Worksheets[0];
sheet1.PageSetup.PrintArea = "A1:R102";
wb.Save(filePath + "out_net.pdf");
- 设置打印页面类型为忽略样式。样例代码如下:
Workbook book = new Workbook(filePath + "1.xlsx");
PdfSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.PrintingPageType = PrintingPageType.IgnoreStyle;
book.Save(filePath + "out_net2.pdf", saveOptions);
希望这些能够帮助到你。
怎么只转换 指定的行数内和列数内 的数据为pdf
有个问题,我只想转指定的少数的行数和列数的,为什么还是很耗内存
Workbook wb = new Workbook(“D:\oom文件.xlsx”);
Worksheet sheet1 = wb.getWorksheets().get(0);
sheet1.getPageSetup().setPrintArea(“A1:B2”);
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setAllColumnsInOnePagePerSheet(true);
wb.save(“D:\out_net.pdf”, pdfSaveOptions);
oom文件.zip (1.8 MB)
如这个,我只想转出来两行两列,但是内存消耗巨大。
jdk8
aspose-cells 23.8
当我在 MS Excel 中打开您的 Excel 文件时,即使是 MS Excel 也需要一些时间才能将文件加载到其中。 因此,通过 Aspose.Cells 加载和保存为 PDF 将花费一些时间并消耗该任务的内存。 您可以尝试在加载文件时使用MemoryPreference模式,它会消耗更少的内存并提高性能。 请参阅以下示例代码行以供参考。
例如
示例代码:
LoadOptions options = new LoadOptions();
options.setMemorySetting(MemorySetting.MEMORY_PREFERENCE);
Workbook wb = new Workbook("D:\oom文件.xlsx", options);
…
多谢,加了这个参数确实减少了很多内存的消耗,还有一些其它的可优化内存的配置吗
好的,多谢,还有一个问题,当我指定打印区域时,如果真实的区域小于指定区域时,能不能只打印真实的区域大小,而不是打印我指定的过大的区域
@Lycheng ,
您可以使用 PageSetup API 指定多个打印区域。 您能否提供示例 Excel 文件并提供有关需要渲染为 PDF 的区域的详细信息。 您还可以提供屏幕截图来证明您的需求,如果可能的话,向我们提供您想要的 PDF,其中包含源模板 Excel 文件中完整的特定数据。 我们会尽快检查。
比如说我有一个excel文档只存在3行2列的数据,
image.png (52.6 KB)
当我指定了sheet1.getPageSetup().setPrintArea(“A1:X6”),因为这里指定的固定范围是比“真实数据”3行2列大的。
我想要的效果是只展示这3行2列的内容,小于我指定范围内的空白行列不打印。
或者有不有办法通过程序能获取到哪一行那一列开始是空白页,这样我就可以setPrintArea(“一个精准的范围值)
你好,用程序怎么判断这类标识的大小呢,如OM90,代表的是第多少列,多少行
excel转pdf时,能不能指定pdf每页只包含多少列数据,其它多余的列都转换到下一页