3

動的なロゴと動的な画像のリストを含む Excel ファイルを作成したいと考えています。Excel ファイルでのテキスト パーツの作成は、jxls でうまく機能します。しかし、jxls を使用して各行に 1 つの画像を挿入することはできません。

誰か私にアドバイスをください。

前もって感謝します。

4

2 に答える 2

1

私が見つけた唯一の解決策は、JXLS を使用して XLS ファイルを作成し、ワークブックを作成した後に、次のようなネイティブ POI 関数を使用して画像を挿入することでした。

Workbook resultWorkbook = transformer.transformXLS(is, beans);

        Iterator rowIter = resultWorkbook.getSheetAt(0).rowIterator();
        while (rowIter.hasNext()){
            HSSFRow row = (HSSFRow) rowIter.next();
            Iterator cellIter = row.cellIterator();
            while (cellIter.hasNext()){
                HSSFCell cell = (HSSFCell) cellIter.next();
                final String IMG_PREFIX = "#IMG#";
                if(cell.toString().startsWith(IMG_PREFIX)){
                    String cellValue = cell.toString();
                    cell.setCellValue("");
                    String imagePath = cellValue.replaceFirst(IMG_PREFIX, "");
                    File imageFile = new File(imagePath);
                    if(imageFile.exists()){
                        FileInputStream isi = new FileInputStream(imageFile);
                        ImageTools imageTools = new ImageTools();
                        byte[] imgBytes = imageTools.resizeImage(isi, 100);
                        int pictureIdx = resultWorkbook.addPicture(imgBytes, Workbook.PICTURE_TYPE_JPEG);
                        CreationHelper helper = resultWorkbook.getCreationHelper();

                        Drawing drawing = resultWorkbook.getSheetAt(0).createDrawingPatriarch();
                        ClientAnchor anchor = helper.createClientAnchor();
                        anchor.setCol1(cell.getColumnIndex());
                        anchor.setRow1(cell.getRowIndex());
                        Picture pict = drawing.createPicture(anchor, pictureIdx);
                        pict.resize();
                        isi.close();
                    }
                }
            }
        }
于 2012-10-26T10:01:11.510 に答える
0

私はこの問題を達成しました.以下はヒントです: jx:each(items="persons" var="person" lastCell="G2" direction="DOWN")

jx:image(lastCell="F2" src="person.portrait")

それがあなたのために働くことを願っています。

于 2015-10-21T08:57:17.830 に答える