1

テーブル/リストオブジェクトを画像に変換する方法は?

Excelファイルには、テーブル、チャート、画像があり、セルJavaを使用しています。私の要件は、これらすべての詳細を独立した画像として取得することです。チャートと図形を変換して画像に変換する API がありますが、テーブル/ListObject 用の API はありません。aspose call java liberaryを使用してテーブルが画像に変換される方法を誰でも知っていますか

4

1 に答える 1

2

テーブル/リストオブジェクトを画像に変換するには

  1. リストオブジェクトを取得

    ListObject listObject = worksheet.getListObjects().get(0);

  2. この listObject のみを持つ新しいワークブックを作成します。


public static Workbook createWorkBook(final Worksheet worksheet, final ListObject listObject) throws Exception {
    Workbook workbook = new Workbook();
    Cells cells = workbook.getWorksheets().get(0).getCells();

    Cells cellsTobeCopied = worksheet.getCells();

    int totalNoOfRows = listObject.getEndRow() - listObject.getStartRow() + 1;
    int totalNoOfColumns = listObject.getEndColumn() - listObject.getStartColumn() + 1;

    cells.setStandardHeight(cellsTobeCopied.getStandardHeight());
    cells.setStandardWidth(cellsTobeCopied.getStandardWidth());

    // Set height of each row as the height of actual rows of table
    for (int row = 0; row < totalNoOfRows; row++) {
        cells.setRowHeight(row, cellsTobeCopied.getRowHeight(row));
    }

    // Set width of each column as the width of actual columns of table
    for (int column = 0; column < totalNoOfColumns; column++) {
        cells.setColumnWidth(column, cellsTobeCopied.getColumnWidth(column));
    }

    // Copy data of table from worksheet to newly created workbook cells
    for (int row = 0; row < totalNoOfRows; row++) {
        for (int column = 0; column < totalNoOfColumns; column++) {
            Cell copiedFrom = worksheet.getCells().get(listObject.getStartRow() + row, listObject.getStartColumn() + column);
            Cell copyTo = cells.get(row, column);

            copyTo.setHtmlString(copiedFrom.getHtmlString());
        }
    }

    // Create table in newly created workbook
    ListObjectCollection tables = workbook.getWorksheets().get(0).getListObjects();
    tables.add(0, 0, totalNoOfRows - 1, totalNoOfColumns - 1, listObject.getShowHeaderRow());

    return workbook;
}

  1. 次に、プロパティ「setOnlyArea」としての画像オプションをtrueにして、このワークブックを画像として変換します


public static void toImage(final Workbook workbook, final String outputFilePath) throws Exception {
    ImageOrPrintOptions imgOptions = new ImageOrPrintOptions();
    imgOptions.setImageFormat(ImageFormat.getPng());
    imgOptions.setOnlyArea(true);

    Worksheet sheet = workbook.getWorksheets().get(0);
    SheetRender sr = new SheetRender(sheet, imgOptions);

    for (int j = 0; j < sr.getPageCount(); j++) {
        sr.toImage(j, outputFilePath);
    }
}

ワークブックは、listObject のみを持つ新しく作成されたワークブックであり、出力ファイル パスは、出力イメージを保存する絶対パスです。

リンク: http://iandjava.blogspot.com/2013/07/convert-excel-document-to-images.html このリンクを使用すると、Excel とそのコンポーネントを画像に変換できます。

于 2013-06-26T12:59:55.970 に答える