4

JXLS 2 はバージョン 1 との下位互換性がありません。アップグレードの手順はありません。バージョン 2 で動作させることはできますが、2 つの問題があります。

  • バージョン 1 ではコメント タグを使用する必要はありませんでしたが、コメント タグなしでは出力を生成できません。

  • Java コードは、結果を書き込むワークシートの場所を指定する必要があります。バージョン 1 では、出力はテンプレートの上に書き込まれるため、Excel と Java コードでテンプレート設定を複製する必要がありませんでした。

これら 2 つの問題の回避策が見つからない場合は、コメントを使用するようにすべてのテンプレートを変更する必要があります。さらに悪いことに、テンプレートのワークシート レイアウトを Java コードに認識させる必要もあります。これがデフォルトの動作である理由がわかりません。バージョン 2 をバージョン 1 のように動作させる方法はありますか?

4

1 に答える 1

4

バージョン 1 ではコメント タグを使用する必要はありませんでしたが、コメント タグなしでは出力を生成できません。

これは完全に真実ではありません。XlsCommentAreaBuilderを使用しないことを選択できます。この場合、3 つのオプションがあります

  1. XmlAreaBuilderを使用します(おそらく、希望する方法ではありません)。

  2. Java API を使用してコマンドを作成します (おそらく、希望する方法ではありません)。

  3. Jxls-1 タグ表記からコマンドを構築する独自のJxls1TagCommandAreaBuilderを作成します (それを jxls コアに戻すために貢献します)。

Jxls-1 テンプレートを変更せずに Jxls-2 で使用できるため、オプション 3 がおそらく最適です。確かにそれは些細なことではありませんが、可能なはずです。

Java コードは、結果を書き込むワークシートの場所を指定する必要があります。バージョン 1 では、出力はテンプレートの上に書き込まれるため、Excel と Java コードでテンプレート設定を複製する必要がありませんでした。

ここで Jxls-1 の動作を取得するには、次のようにするだけです

        for (Area xlsArea : xlsAreaList) {
            xlsArea.applyAt(
                     new CellRef(xlsArea.getStartCellRef().getCellName()), context);
        }

したがって、開始セルに領域を適用するだけです。

これをデフォルトの動作にしたい場合は、jxls issue trackerで改善を提起できます

于 2015-07-24T07:31:39.923 に答える