开发员指南:使用Java图表转换为PDF/JPG等图像

Aspose.Cells for JavaExcel电子表格处理API,它允许Java开发人员在自己的Java应用程序中嵌入可读取、写入和操作Excel电子表格的能力,而无需依赖Microsoft Excel。

Excel文件通常用于处理数字数据。此外,图表以图形形式表示数据,同时可以在Java应用程序中将图表有效地转换为图像或PDF。

Aspose.Cells for Java提供了许多功能,无需安装Microsoft Excel 即可创建,编辑或操作XLSX,XLS,XLSM,XLSB和其他受支持的文件格式。在本文中,我们将探索对图表渲染为图像和PDF文件格式的支持。让我们概述一下我们将在此处介绍的功能:

  • 图表到图像和PDF转换API
  • 使用Java将图表转换为图像
  • 使用Java将工作表中的所有图表转换为图像
  • 使用Java将图表转换为PDF

图表到图像和PDF转换API

为了转换这些文件格式,可以通过Java方法中的Aspose.Cells for Java将图表转换或呈现为不同的图像格式,包括JPG,PNG,TIFF或BMP。同样,您可以根据需要将图表呈现为PDF格式。首先,您需要在Java环境中为Java API配置Aspose.Cells。您可以通过下载JAR文件或添加以下Maven存储库规范来进行设置:

开发员指南:使用Java图表转换为PDF/JPG等图像

使用Java将图表转换为图像

成功配置API后,可以将图表导出或转换为任何图像格式,包括JPG,PNG,TIFF,BMP,SVG,WMP等。在此示例中,让我们考虑将图表另存为PNG图像。您需要按照以下步骤将图表转换为图像。

  1. 加载输入XLS / XLSX文件
  2. 访问工作表和图表
  3. 初始化ImageOrPrintOptions以设置质量和其他属性
  4. 设置图像类型并将图表转换为图像

下面的代码片段显示了如何使用Java将图表转换为JPG,PNG,TIFF,BMP,SVG或WMP图像:

// Load input XLSX file
Workbook workbook = new Workbook(dataDir + "SampleExcel.xlsx");
        
// Access required worksheet        
Worksheet worksheet = workbook.getWorksheets().get(0);

// Access specific chart
Chart chart = worksheet.getCharts().get(1);

// Create an instance of ImageOrPrintOptions and set a few properties
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.setVerticalResolution(300);
options.setHorizontalResolution(300);
options.setQuality(100);

// Set image type for output format
options.setImageType(ImageType.PNG);

// Render the chart to image        
chart.toImage(dataDir + "chart.png", options);

让我们看一下此代码生成的图表图像的屏幕截图:

开发员指南:使用Java图表转换为PDF/JPG等图像

使用Java将工作表中的所有图表转换为图像

我们已经了解了将单个图表呈现到图像的知识。这是一个基本用例,我们可以增强和涵盖您要将所有工作表中的所有图表转换为相应图像的方案。您需要按照以下步骤将工作簿中的所有图表转换为图像:

  1. 加载源XLS / XLSX文件
  2. 遍历每个工作表
  3. 遍历每个工作表中的每个图表
  4. 使用ImageOrPrintOptions指定不同的属性
  5. 保存图表的输出图像

以下代码段显示了如何使用Java将图表转换为图像:

// Load input XLSX file
Workbook workbook = new Workbook(dataDir + "SampleExcel.xlsx");

for (int sheet = 0 ; sheet < workbook.getWorksheets().getCount() ; sheet++)
{
    // Access required worksheet        
    Worksheet worksheet = workbook.getWorksheets().get(sheet);

    for (int i =0 ; i<worksheet.getCharts().getCount() ; i++)
    {
        // Access specific chart
        com.aspose.cells.Chart chart = worksheet.getCharts().get(i);

        // Create an instance of ImageOrPrintOptions and set a few properties
        ImageOrPrintOptions options = new ImageOrPrintOptions();
        options.setVerticalResolution(300);
        options.setHorizontalResolution(300);
        options.setQuality(100);

        // Set image type for output format
        options.setImageType(com.aspose.cells.ImageType.PNG);

        // Render the chart to image        
        chart.toImage(dataDir + "chart_" + (i+1) + "_" + worksheet.getName() + ".png", options);
    }
}

使用Java将图表转换为PDF

PDF文件格式之所以出名是因为它与几乎所有操作系统兼容。有时您可能需要将图表从Excel工作簿转换为PDF文件。尽管您可以使用Aspose API将先前渲染的图像转换为PDF,但这将是一个两步方法。而Aspose.Cells for Java API可以直接将图表呈现为PDF文档。需要按照以下步骤执行转换:

  1. 加载输入的XLSX文件
  2. 访问所需的工作簿
  3. 确保至少有一张图表
  4. 将特定图表渲染为PDF

下面的代码段说明了如何使用Java将图表转换为PDF:

// Load input XLSX file
Workbook workbook = new Workbook(dataDir + "SampleExcel.xlsx");

// Access required worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);

// Make sure there is atleast one chart in the workbook
if(worksheet.getCharts().getCount() > 0)
{
    // Access specific chart
    com.aspose.cells.Chart chart = worksheet.getCharts().get(1);

    // Render the chart to PDF
    chart.toPdf(dataDir + "FirstChart.pdf");
}

如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询。