Free Support Forum - aspose.com

[Aspose Cells for Java] XMLスプレッドシートをExcel Book形式で保存すると「名前の定義」のHidden属性がExcel Book形式のファイルに引き継がれない

「名前の定義」のHidden属性が変換後のExcel Book形式のファイルに引き継がれていませんでした。
変換は以下のようなコードで実行しています。


Workbook workbook = new Workbook("HiddenDefineName.xml", new LoadOptions(LoadFormat.SPREADSHEET_ML));
workbook.save(outputDir + "HiddenDefineName.xml.xlsx", SaveFormat.XLSX);
workbook.save(outputDir + "HiddenDefineName.xml.xls", SaveFormat.EXCEL_97_TO_2003);

変換元のXMLスプレッドシートには以下の通り、「名前の定義」に「Hidden=1」と設定されています。


<Names>
 <NamedRange ss:Name="_FilterDatabase" ss:RefersTo="=データシート!R2C2:R7C2"
  ss:Hidden="1"/>
 <NamedRange ss:Name="Z_11F02CEB_383A_4923_88C6_AC26BC166D12_.wvu.FilterData"
  ss:RefersTo="=データシート!R2C2:R7C2" ss:Hidden="1"/>
 <NamedRange ss:Name="Z_2E5FC1F2_35C9_4971_99F7_C9D46814220F_.wvu.FilterData"
  ss:RefersTo="=データシート!R2C2:R7C2" ss:Hidden="1"/>
</Names>

ですが、変換後のxlsxファイル内のworkbook.xmlを見ると、上記XMLスプレッドシートではss:Hidden="1"と設定されていた
「Z_11F02CEB_383A_4923_88C6_AC26BC166D12_.wvu.FilterData」と「Z_2E5FC1F2_35C9_4971_99F7_C9D46814220F_.wvu.FilterData」に
Hidden属性が設定されていません。


<definedNames>
<definedName name="名前の定義の名前です">数式シート!$F$3:$F$5</definedName>
<definedName name="_xlnm._FilterDatabase" localSheetId="7" hidden="1">データシート!$B$2:$B$7</definedName>
<definedName name="Z_11F02CEB_383A_4923_88C6_AC26BC166D12_.wvu.FilterData" localSheetId="7">データシート!$B$2:$B$7</definedName>
<definedName name="Z_2E5FC1F2_35C9_4971_99F7_C9D46814220F_.wvu.FilterData" localSheetId="7">データシート!$B$2:$B$7</definedName>
<definedName name="Z_11F02CEB_383A_4923_88C6_AC26BC166D12_.wvu.Rows" localSheetId="9">グループ化小計シート!$4:$27</definedName>
<definedName name="Z_2E5FC1F2_35C9_4971_99F7_C9D46814220F_.wvu.Rows" localSheetId="9">グループ化小計シート!$4:$27</definedName>
</definedNames>

「名前の定義」のHidden属性が引き継がれないのはなぜでしょうか?
確認に使用したXMLスプレッドシートと変換後のExcel Book形式ファイルを添付していますので
ご確認よろしくお願いします。

  • 確認バージョン: Aspsoe Cells for Java 20.9、20.11
  • サンプルデータ:SampleData.zip (12.5 KB)

@yudai_yamaguchi,
サンプルコードとソースXMLファイルを使用してこの問題を確認しました。 この問題は、さらなる調査と修正のためにデータベースに記録されます。 更新を共有する準備ができたら、ここに返信します。

この問題は次のように記録されます。

CELLSJAVA-43349 - Hidden rows are not maintained from XML to XLS/XLSX conversion

@yudai_yamaguchi,
SpreadSheetMLファイルは、フィルタリングされた正しい行情報を保存しません。 xmlに隠されている行は1つだけです。
次の修正で、新しいプロパティLoadOptions.AutoFilterを追加します。

LoadOptions options = new LoadOptions();
options.AutoFilter = true;
Workbook workbook = new Workbook(dir + "HiddenDefineName.xml", options);
workbook.Save(dir + @"dest.xlsx");

前の回答で書いていただいたコードを確認しました。

Aspose Cells for JavaのAPIを確認しましたが、LoadOptionsにはAutoFilterOptionsを設定するSetterはありましたが
AutoFilter というbooleanを設定できるプロパティが見当たりませんでした。
https://apireference.aspose.com/cells/java/com.aspose.cells/LoadOptions

コードが正しいかご確認いただけますか?
よろしくお願いします。

@yudai_yamaguchi,

このプロパティは、次の修正で追加されます。修正は数日中に共有されます。
連絡を取り合う。

AutoFilterプロパティは次の修正で追加される旨、承知しました。

修正がリリースされたら、ご連絡よろしくお願いします。

@yudai_yamaguchi,

確かに、修正に関する最新情報をお知らせします。
うまくいけば、それはすぐに準備ができているでしょう。

@yudai_yamaguchi,

Try the latest version / hotfix: Aspose.Cells for Java v20.11.5 (attached)

The problem needs to be fixed.

Please give us your feedback.
aspose-cells-20.11.5-java.zip (7.2 MB)

The issues you have found earlier (filed as CELLSJAVA-43349) have been fixed in this update. This message was posted using Bugs notification tool by johnson.shi