下記のコードでExcelファイル内の画像ファイルを抽出しています。
public byte[] extractImage(Workbook workbook) {
for (Object sheetObj : workbook.getWorksheets()) {
Worksheet sheet = (Worksheet) sheetObj;
for (Object pictureObj : sheet.getPictures()) {
Picture picture = (Picture) pictureObj;
return picture.getData();
}
}
return null;
}
画像の抽出で1つお伺いしたいことがあります。
下記のサンプルデータのように、SmartArtを画像データとして抽出することは可能でしょうか。
使用バージョン:Aspose.Cells for Java 18.4
サンプルデータ:smartart_picture.zip (26.5 KB)
お手数おかけしますが、ご確認の程よろしくお願いいたします。
@yudai_yamaguchi,
テンプレートファイルとサンプルコードのセッションがありがとう。
最初のテストの後、テンプレートファイルで次のサンプルコードを使用して上の問題を確認できます。SmartArtの画像データを正解することはできません。
例えば
サンプルコード:
Workbook wb = new Workbook("f:\\files\\smartart\\smartart.xls");
Worksheet sheet = wb.getWorksheets().get(0);
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.setImageFormat(ImageFormat.getPng());
int i =0;
for (Object shapeObj : sheet.getShapes()) {
Shape smShape = (Shape) shapeObj;
// SmartArtを取得
if (smShape.isSmartArt()) {
i++;
smShape.toImage("f:\\files\\ou1img" + i+ ".png", options);
}
}
wb.save("f:\\files\\out1.pdf");
あなたの問題のためにID「CELLSJAVA - 42619」のセレクションを記録しました。私たちはすぐにそれを調査します。
更新がありばここでお知らせします。
チケット作成のご対応ありがとうございました。
以上、よろしくお願いいたします。
@yudai_yamaguchi,
Aspose.Cells for Java v18.4.5:最新の修正版をお試しください。
この問題は、テンションファイルのサンプルコードを使用してテストしたところに修正されました。出力画像とPDFは微調整されています。
フィードバックをお聞かせください。
ご回答ありがとうございます。
いただいたコードを使用してSmartArtの画像データを抽出することができました。
しかし、下記のサンプルデータで試した場合、一部のSmartArtの画像データが正しく抽出できませんでした。
これらのSmartArtからも正しく画像データを抽出することは可能でしょうか。
使用バージョン:Aspose.Cells for Java 18.4.5
サンプルデータ:smartart_picture_2.zip (222.0 KB)
お手数おかけしますが、ご確認の程よろしくお願いいたします。
@yudai_yamaguchi
私たちはこの問題を察知し、調査と修正のためにデータベースに記録しました。
この問題は次のように記録されています。
-
CELLSJAVA-42627 - Unable to extract Smart Art images correctly
チケット作成のご対応ありがとうございました。
以上、よろしくお願いいたします。
@yudai_yamaguchi,
これはあなたの問題 "CELLSJAVA - 42627"が解決されたことを通知するためです。 QAを実装し、その他の機能強化や修正を行った後は、まもなく固定バージョンを提供します。
@yudai_yamaguchi
以下の修正プログラムをダウンロードしてお試しください。フィードバックをお寄せください。
ご返答ありがとうございます。
修正版を使って、以前添付しましたサンプルデータを処理しました。
一部は正しく抽出されましたが、円グラフ型のSmartArtが正しく抽出できませんでした。
使用バージョン:Aspose.Cells for Java 18.5.4
サンプルデータ:smartart_picture_3.zip (71.5 KB)
お手数おかけしますが、ご確認の程よろしくお願いいたします。
@yudai_yamaguchi,
テンプレートファイルと画像ファイルをありがとうございます。
最初のテストの後、上記の問題を確認するには、テンプレートファイルで次のサンプルコードを使用します。 PieチャートタイプのSmartArtを正しく抽出できないことが判明しました:
例えば
サンプルコード:
Workbook wb = new Workbook("F:\\Files\\smartart_picture_3\\smartarts.xlsx");
Worksheet sheet = wb.getWorksheets().get(0);
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.setImageFormat(ImageFormat.getPng());
int i =0;
for (Object shapeObj : sheet.getShapes()) {
Shape smShape = (Shape) shapeObj;
// SmartArtを取得
if (smShape.isSmartArt()) {
i++;
smShape.toImage("F:\\Files\\smartart_picture_3\\ou1img" + i+ ".png", options);
}
}
wb.save("F:\\Files\\smartart_picture_3\\out1.pdf");
あなたの問題のためにID "CELLSJAVA - 42637"のチケットを記録しました。 私たちはすぐにそれを調査します。
更新があればここでお知らせします。
チケット作成のご対応ありがとうございました。
以上、よろしくお願いいたします。
The issues you have found earlier (filed as CELLSJAVA-42627,CELLSJAVA-42619) have been fixed in Aspose.Cells for Java 18.6. Please also see the document for your reference: Installation|Documentation
18.6を使用して、例外が発生しなくなったことを確認しました。
ご対応いただきありがとうございます。
@yudai_yamaguchi
あなたのフィードバックとAspose.Cellsの使用に感謝します。
あなたの問題は最新の修正で解決されたことを知っておいてよかったです。 あなたが他の問題に遭遇した場合は、私たちに知らせてください。私たちはそれを調べて、あなたをさらに助けてくれることをうれしく思います。
以前、こちらの問い合わせで歯車型のSmartArtの画像を修正していただきました。
しかし、改めて確認してみる、矢印が1つ欠如していることがわかりました。
コードはこちらの問い合わせで教えていただいたものを使用しています。
サンプルデータを添付しますので、正常に抽出できるようにしていただくことは可能でしょうか。
使用バージョン:Aspose.Cells for Java 18.6
サンプルデータ:smartart_picture.zip (83.2 KB)
お手数おかけしますが、ご確認の程よろしくお願いいたします。
@yudai_yamaguchi,
問題を確認し、抽出された画像から欠落した矢印を確認しました。私たちはこの情報をデータベースに記録しました。すぐに作業します。利用可能な場合は、最新情報をお知らせします。
チケット作成のご対応ありがとうございました。
以上、よろしくお願いいたします。