Aspose.Cells for Java xlam形式が扱えない

xlam形式のファイルを処理する際に下記のコードで例外が発生しました。

Workbook workbook = new Workbook(inputStream);
com.aspose.cells.CellsException: Unsupport file format.
	at com.aspose.cells.Workbook.a(Unknown Source)
	at com.aspose.cells.Workbook.<init>(Unknown Source)

使用バージョン:Aspose.Cells for Java 18.4
サンプルデータ:test.zip (5.5 KB)

バージョン18.3では問題なく処理できていましたので、
この例外を回避しファイルを処理できるようにすることは可能でしょうか。

お手数おかけしますが、ご確認の程よろしくお願いいたします。

@yudai_yamaguchi

あなたのファイルを最新のバージョン、つまり18.4でテストしました。それはそれを正常に開き、例外をスローしませんでした。

ダウンロードして試してください。問題が解決するはずです。 あなたのフィードバックをお知らせください。

Download Link:

ご返答ありがとうございます。

Workbookクラスのインスタンス生成をPath指定で行った場合は、問題なく処理することができました。
しかし、Workbookクラスのインスタンス生成をInputStreamで行った場合に例外が発生します。

new Workbook(String file) ⇒ ○
new Workbook(InputStream stream) ⇒ ×

お手数おかけしますが、ご確認の程よろしくお願いいたします。

@yudai_yamaguchi

XLAMファイルを開くには、LoadFormat.XLSXを使用してください。 次のコードを試してくださいと正常に動作します。

Java

LoadOptions opts = new LoadOptions(LoadFormat.XLSX);

FileInputStream fis = new FileInputStream(dirPath + "test.xlam");
Workbook wb = new Workbook(fis, opts);
wb.save(dirPath + "out.pdf");

ご回答ありがとうございます。

LoadFormat.XLSXを使用することでxlam形式を読み込むことができました。

しかし、この設定をするとxls形式やxlsb形式が読み込めなくなります。

現状、様々な形式のファイルをInputStreamで読み込む必要があります。
また、処理するExcelファイルの形式を読み込み処理の前に判別することができません。

18.3のときのようにLoadFormatなしでも正常に読み込めるか、
または、読み込み前にファイル形式を判別する方法はございますでしょうか。

お手数おかけしますが、ご確認の程よろしくお願いいたします。

@yudai_yamaguchi

XLAMファイルのLoadFormatとFileFormatTypeを検出するために、お客様のニーズに応じて以下の問題が記録されています。

  • CELLSJAVA-42594 - Detect LoadFormat and FileFormatType of XLAM

チケット作成の対応ありがとうございます。

確認させていただきたいのですが、
18.3のときのように18.4でもLoadFormatなしでxlam形式をに読み込めるようにしていただくことは可能でしょうか。

申し訳ございませんが、ご確認の程よろしくお願いいたします。

@yudai_yamaguchi,

Shakeel Faizが既述のように、LoadFormatを指定せずにストリーミングからXLAMファイルを読み込むことはできません。これでパケットが記録されたので、ファイル形式を見つけてファイルに合わせて指定することができます できます:
例えば
サンプルコード:

FileFormatInfo finfo = FileFormatUtil.detectFileFormat (dirPath + "Book1.xlam");
LoadOptions ldOpts = New LoadOptions (finfo.getLoadFormat ());
.................
Workbook wb = New workbook (fis, ldOpts);

最初にパケットを評価してください。

Aspose.Cells for Java 18.3 では下記のコードのようにLoadOptionsを引数で渡さなくても、xlam形式を処理できていました。

try (InputStream inputStream = new FileInputStream(file)) {

Workbook workbook = new Workbook(inputStream);

}

しかし、Aspose.Cells for Java 18.4 では上記のコードで例外が発生します。
Aspose.Cells for Java 18.3と同様に18.4でもLoadOptionsを引数で渡さず、xlam形式を処理したいです。

先ほど作成していただいたチケットの対応で上記の問題が解決するという認識でよろしいでしょうか。

申し訳ございませんが、ご確認の程よろしくお願いいたします。

@yudai_yamaguchi,

Aspose.Cells for Java v18.3をXLAMファイルとともに使用して、次のサンプルコードを使用すると成功しました。
例えば
サンプルコード:

FileInputStream fis = new FileInputStream("f:\\files\\test.xlam");
		Workbook wb = new Workbook(fis); 

ただし、v18.4.xで同じシナリオ/ケースを使用すると、前述の例外がスローされます。
万一に備えて:
“Exception in thread “main” com.aspose.cells.CellsException: Unsupport file format.
at com.aspose.cells.Workbook.a(Unknown Source)
at com.aspose.cells.Workbook.(Unknown Source)”

最近のバージョンや問題で期待される動作かどうかを評価します。 これが問題の場合は、修正する予定です。

ご返答ありがとうございます。

問題であれば修正していただきますよう、よろしくお願いいたします。

@yudai_yamaguchi

CELLSJAVA-42594の問題が修正されたことをお知らせするためです。 QAを実行した後、すぐに修正を提供し、その他の拡張機能や修正が含まれます。

問題を解決していただき、ありがとうございました。

@yudai_yamaguchi

Aspose APIを使用していただきありがとうございます。

以下の修正プログラムをダウンロードしてお試しください。フィードバックをお寄せください。

Aspose.Cells for Java 18.4.5を使用して問題が解決されてることを確認しました。

修正していただきありがとうございました。

@yudai_yamaguchi

あなたの問題が最新の修正で解決されたことを知ってうれしいです。 他の問題が発生した場合は、お知らせください。 今後ともよろしくお願いいたします。

The issues you have found earlier (filed as CELLSJAVA-42594) have been fixed in Aspose.Cells for Java 18.5. Please also see the document for your reference: Installation|Documentation