-3

Apache POI を使用すると、グラフのないワークシートに画像を追加できますが、グラフのあるワークシートでは機能しません

問題: 出力ファイルを Excel で開けない!

なぜだめですか?解決策はありますか?

InputStream inputStreamXls = new FileInputStream("c:\\temp\\template.xls");
XSSFWorkbook workbook = new XSSFWorkbook(inputStreamXls);
XSSFSheet sheet = workbook.getSheetAt(0);
inputStreamXls.close();

InputStream inputStreamImg = new FileInputStream("c:\\temp\\logo.png");
byte[] bytes = IOUtils.toByteArray(inputStreamImg);
int pictureIdx = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
inputStreamImg.close();

CreationHelper helper = workbook.getCreationHelper();
Drawing drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
anchor.setCol1(x);
anchor.setRow1(y);
Picture pict = drawing.createPicture(anchor, pictureIdx);

// save workbook
String file = "c:\\temp\\output_file.xls";
FileOutputStream fileOut = new FileOutputStream(file);
workbook.write(fileOut);
fileOut.close();
4

1 に答える 1

0

コードは XSSFWorkbook を使用して .xls ファイルを読み書きします。XSSFWorkbook は .xlsx ファイル用です。HSSFWorkbook を使用します。

于 2013-10-03T22:42:10.807 に答える