如何使用Apache POI XSSF创建从右到左对齐的工作表

我正在尝试使用Apache POI在Excel文件中创建工作表。

由于它是Excel 2007,我正在使用XSSF,我正在寻找一种方法来使表格从右到左对齐。

在HSSF中有一个方法org.apache.poi.hssf.usermodel.HSSFSheet.setRightToLeft(boolean) ,但我在org.apache.poi.xssf.usermodel.XSSFSheet找不到它。

我正在使用Apache POI 3.7

解决方法:

  XSSFSheet sheet = workbook.createSheet(); sheet.getCTWorksheet().getSheetViews().getSheetViewArray(0).setRightToLeft(true); 

资料来源: http : //thread.gmane.org/gmane.comp.jakarta.poi.user/17099/focus=17110

因为它不存在,你需要做一些工作,对不起……

首先,在excel中创建一个从左到右的简单文件。 然后,打开副本并在excel中将其设置为从右到左,然后保存。 现在,解压缩两个文件(.xlsx是xml文件的zip文件),并对xml进行差异化以查看从右到左设置时发生了什么变化(我怀疑它只是/sheets/sheet1.xml更改了BICBW)

一旦你知道XML需要改变什么,短期内,从POI中获取低级CT对象并使用它们来操纵它。 例如,您可能会获得CTWorkSheet,并在其上设置一个标志

最后,报告丢失的setter / getter的POI bugzilla中的新错误。 上载可在unit testing中使用的两个示例文件,并包含有关已更改的XML和需要设置的CT对象的信息。 然后,有人可以快速将该function添加到POI。 如果可以,请在XSSFSheet中添加一个补丁来执行此操作!