[]
GcExcel为加载、保存、打印和导出Excel文件提供了广泛的支持,其中包括支持导出形状。
IShape接口的getIsPrintable和setIsPrintable方法可用于获取或设置是否将形状导出到PDF文档中。默认情况下,此值为TRUE,因此将打印嵌入Excel文件中的形状。如果不想将形状导出到PDF文件,则必须将此值设置为FALSE。
形状导出到PDF功能允许用户打印和导出不同类型的形状,如标注、线条、矩形、基本形状、块箭头、流程图、公式形状、星形和横幅等。在遇到以下情况时,可以使用此功能:
当存在有Excel文件,其中包含图形、报表和仪表板,这些图形、报表和仪表板包含各种形状,并且希望导出为PDF文件。
借助此功能,用户可以将包含预设形状、基本形状、自定义形状和组合形状的电子表格导出到PDF文件中,这些形状具有不同的操作,如旋转、翻转、连接箭头和文本等。
电子表格模板中包含形状的填充功能(如实体填充、渐变填充等)时,可以采用导出为PDF格式显示。
请参阅以下示例代码以将形状导出为PDF。
// Initialize workbook
Workbook workbook = new Workbook();
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
// Adding Shapes
IShape ShapeBegin =
worksheet.getShapes().addShape(AutoShapeType.CloudCallout, 1, 1, 100, 100);
IShape EndBegin =
worksheet.getShapes().addShape(AutoShapeType.Wave, 200, 200, 100, 100);
// Adding Connector Shape
IShape ConnectorShape = worksheet.getShapes()
.addConnector(ConnectorType.Straight, 1, 1, 101, 101);
// Connect shapes by connector shape
ConnectorShape.getConnectorFormat().beginConnect(ShapeBegin, 3);
ConnectorShape.getConnectorFormat().endConnect(EndBegin, 0);
/* Get second shape in current worksheet( here it's a connector shape)
and do not print it(default value is true) */
worksheet.getShapes().get(2).setIsPrintable(false);
// Saving workbook to PDF
workbook.save("ExportShapesToPDF.pdf", SaveFileFormat.Pdf);注意:将包含形状的Excel文件导出为PDF格式时,某些导出的形状(包括具有渐变填充和图案填充的形状)、具有多行和渐变线的形状、形状效果、文本设置(如文本对齐、文本分布和垂直文本)可能与Excel中的显示效果不完全相同。
GcExcel Java 支持在导出为 PDF 时保留形状文本中的项目符号格式。导出的 PDF 文件可正确展示项目符号的类型、颜色、大小等属性,确保视觉效果与 Excel 尽可能保持一致。
导出包含带项目符号文本形状的 Excel 文件时,GcExcel Java 会自动解析并渲染源文件中的项目符号定义。
GcExcel Java 支持导出以下三种项目符号类型:
项目符号类型 | 说明 |
|---|---|
符号项目符号 | 使用特殊符号(•、○、■ 等)作为项目符号标记 |
自动编号项目符号 | 使用数字或字母序列(1、2、3 或 a、b、c 等) |
自定义项目符号 | 用户自定义的专属符号 |
导出为 PDF 时,GcExcel Java 可保留以下项目符号属性:
颜色:项目符号颜色按以下优先级判定:
项目符号自身颜色(若已设置)
段落文本颜色(未设置项目符号颜色时的备用颜色)
大小:项目符号大小与段落字体大小成比例。该比例可在 Excel 的项目符号设置中配置,并在导出过程中保留。
样式:项目符号支持以下样式:
删除线:适用于所有项目符号类型(符号型、自动编号型、自定义型)
加粗/斜体:仅适用于自动编号项目符号
以下示例演示如何将包含带项目符号形状的 Excel 文件导出为 PDF,导出过程中会自动保留项目符号格式。
// 创建新工作簿
Workbook workbook = new Workbook();
// 打开包含带项目符号形状的Excel文件
workbook.open("Bullet.xlsx");
// 导出为PDF文件
workbook.save("BulletToPDF.pdf");导出效果如下图所示:

局限性
目前暂不支持图片型项目符号。若 Excel 文件使用图片作为项目符号标记,导出的 PDF 中将无法显示此类项目符号。