mirror of https://github.com/apache/poi.git
Bug 64494: Ensure "applyAlignment" in cell-styles is enabled when necessary
Also check it when fetching currently defined cell-alignment git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885059 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e59e84a213
commit
218354f5b9
|
@ -222,6 +222,8 @@ public class XSSFCellStyle implements CellStyle, Duplicatable {
|
|||
|
||||
@Override
|
||||
public HorizontalAlignment getAlignment() {
|
||||
if(!_cellXf.getApplyAlignment()) return HorizontalAlignment.GENERAL;
|
||||
|
||||
CTCellAlignment align = _cellXf.getAlignment();
|
||||
if(align != null && align.isSetHorizontal()) {
|
||||
return HorizontalAlignment.forInt(align.getHorizontal().intValue()-1);
|
||||
|
@ -629,6 +631,8 @@ public class XSSFCellStyle implements CellStyle, Duplicatable {
|
|||
|
||||
@Override
|
||||
public VerticalAlignment getVerticalAlignment() {
|
||||
if(!_cellXf.getApplyAlignment()) return VerticalAlignment.BOTTOM;
|
||||
|
||||
CTCellAlignment align = _cellXf.getAlignment();
|
||||
if(align != null && align.isSetVertical()) {
|
||||
return VerticalAlignment.forInt(align.getVertical().intValue()-1);
|
||||
|
@ -654,6 +658,8 @@ public class XSSFCellStyle implements CellStyle, Duplicatable {
|
|||
*/
|
||||
@Override
|
||||
public void setAlignment(HorizontalAlignment align) {
|
||||
_cellXf.setApplyAlignment(true);
|
||||
|
||||
getCellAlignment().setHorizontal(align);
|
||||
}
|
||||
|
||||
|
@ -1155,6 +1161,8 @@ public class XSSFCellStyle implements CellStyle, Duplicatable {
|
|||
* @param align - the type of alignment
|
||||
*/
|
||||
public void setVerticalAlignment(VerticalAlignment align) {
|
||||
_cellXf.setApplyAlignment(true);
|
||||
|
||||
getCellAlignment().setVertical(align);
|
||||
}
|
||||
|
||||
|
|
|
@ -3630,7 +3630,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void test64986() throws IOException {
|
||||
public void test64986() {
|
||||
XSSFWorkbook w = new XSSFWorkbook();
|
||||
XSSFSheet s = w.createSheet();
|
||||
XSSFRow r = s.createRow(0);
|
||||
|
@ -3667,4 +3667,37 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
|
|||
assertNotNull(wb);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test64494() throws IOException {
|
||||
try (Workbook wb = new XSSFWorkbook()) {
|
||||
CellStyle styleRight = wb.createCellStyle();
|
||||
CellStyle styleLeft = wb.createCellStyle();
|
||||
styleRight.setAlignment(HorizontalAlignment.RIGHT);
|
||||
//styleRight.setBorderBottom(BorderStyle.DASH_DOT);
|
||||
styleLeft.setAlignment(HorizontalAlignment.LEFT);
|
||||
//styleLeft.setBorderRight(BorderStyle.MEDIUM);
|
||||
|
||||
assertEquals(HorizontalAlignment.RIGHT, styleRight.getAlignment());
|
||||
assertEquals(HorizontalAlignment.LEFT, styleLeft.getAlignment());
|
||||
|
||||
Sheet sheet = wb.createSheet("test");
|
||||
Row row = sheet.createRow(0);
|
||||
|
||||
Cell cellRight = row.createCell(0);
|
||||
cellRight.setCellValue("R");
|
||||
cellRight.setCellStyle(styleRight);
|
||||
|
||||
Cell cellLeft = row.createCell(1);
|
||||
cellLeft.setCellValue("L");
|
||||
cellLeft.setCellStyle(styleLeft);
|
||||
|
||||
/*try (OutputStream out = new FileOutputStream("/tmp/64494.xlsx")) {
|
||||
wb.write(out);
|
||||
}*/
|
||||
|
||||
assertEquals(HorizontalAlignment.RIGHT, cellRight.getCellStyle().getAlignment());
|
||||
assertEquals(HorizontalAlignment.LEFT, cellLeft.getCellStyle().getAlignment());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue