2013-07-09 130 views
1

我想将我的excel文件以及它的实体(图表,图像)转换为jpeg/png图像。目前正在使用aspose。这里是我的代码Excel图像转换

public static int excelToImages(final String sourceFilePath, final String outFilePrefix) throws Exception { 
    int noOfImages = 0; 

    Workbook workbook = getWorkbook(sourceFilePath); 
    List<Worksheet> worksheets = getAllWorksheets(workbook); 

    if (worksheets != null) { 
     for (Worksheet worksheet : worksheets) { 
      if (worksheet.getCells().getCount() > 0) { 
       String outFilePath = FileUtils.getAbsoluteFilePath(outFilePrefix + (noOfImages++)); 

       SheetRender sr = new SheetRender(worksheet, getImageOrPrintOptions()); 
       sr.toImage(0, outFilePath); 
      } 
     } 
    } 
    return noOfImages; 
} 

private static ImageOrPrintOptions getImageOrPrintOptions() { 
    ImageOrPrintOptions imgOptions = new ImageOrPrintOptions(); 
    imgOptions.setImageFormat(ImageFormat.getJpeg()); 
    imgOptions.setOnePagePerSheet(true); 
    return imgOptions; 
} 

private static List<Worksheet> getAllWorksheets(final Workbook workbook) { 
    List<Worksheet> worksheets = new ArrayList<Worksheet>(); 

    WorksheetCollection worksheetCollection = workbook.getWorksheets(); 
    for (int i = 0; i < worksheetCollection.getCount(); i++) { 
     worksheets.add(worksheetCollection.get(i)); 
    } 
    return worksheets; 
} 

我的问题是输出图像的大小或者拆分成多个A4尺寸或单1张取决于是否拥有

imgOptions.setOnePagePerSheet(true); 

谁能告诉我怎么可以自定义输出图像文件的大小?

回答

0

您可以使用imgOptions.setOnlyArea(true);来尝试。这会将图像的大小设置为将所有内容放入图像所需的最小值。但我不确定生成的图像是否分割成A4部分。