Update the CreateTable example to reduce the use of the raw CT classes
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1797923 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7b38f8c5f1
commit
993801aa1c
@ -26,11 +26,8 @@ import org.apache.poi.xssf.usermodel.XSSFCell;
|
|||||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
import org.apache.poi.xssf.usermodel.XSSFRow;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFTable;
|
import org.apache.poi.xssf.usermodel.XSSFTable;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFTableStyleInfo;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable;
|
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn;
|
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumns;
|
|
||||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableStyleInfo;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Demonstrates how to create a simple table using Apache POI.
|
* Demonstrates how to create a simple table using Apache POI.
|
||||||
@ -42,48 +39,52 @@ public class CreateTable {
|
|||||||
Workbook wb = new XSSFWorkbook();
|
Workbook wb = new XSSFWorkbook();
|
||||||
XSSFSheet sheet = (XSSFSheet) wb.createSheet();
|
XSSFSheet sheet = (XSSFSheet) wb.createSheet();
|
||||||
|
|
||||||
//Create
|
// Create
|
||||||
XSSFTable table = sheet.createTable();
|
XSSFTable table = sheet.createTable();
|
||||||
table.setDisplayName("Test");
|
table.setName("Test");
|
||||||
CTTable cttable = table.getCTTable();
|
table.setDisplayName("Test_Table");
|
||||||
|
|
||||||
//Style configurations
|
// For now, create the initial style in a low-level way
|
||||||
CTTableStyleInfo style = cttable.addNewTableStyleInfo();
|
table.getCTTable().addNewTableStyleInfo();
|
||||||
|
table.getCTTable().getTableStyleInfo().setName("TableStyleMedium2");
|
||||||
|
|
||||||
|
// Style the table
|
||||||
|
XSSFTableStyleInfo style = (XSSFTableStyleInfo)table.getStyle();
|
||||||
style.setName("TableStyleMedium2");
|
style.setName("TableStyleMedium2");
|
||||||
style.setShowColumnStripes(false);
|
style.setShowColumnStripes(false);
|
||||||
style.setShowRowStripes(true);
|
style.setShowRowStripes(true);
|
||||||
|
style.setFirstColumn(false);
|
||||||
|
style.setLastColumn(false);
|
||||||
|
style.setShowRowStripes(true);
|
||||||
|
style.setShowColumnStripes(true);
|
||||||
|
|
||||||
//Set which area the table should be placed in
|
// Set the values for the table
|
||||||
AreaReference reference = new AreaReference(new CellReference(0, 0),
|
|
||||||
new CellReference(2,2));
|
|
||||||
cttable.setRef(reference.formatAsString());
|
|
||||||
cttable.setId(1);
|
|
||||||
cttable.setName("Test");
|
|
||||||
cttable.setTotalsRowCount(1);
|
|
||||||
|
|
||||||
CTTableColumns columns = cttable.addNewTableColumns();
|
|
||||||
columns.setCount(3);
|
|
||||||
CTTableColumn column;
|
|
||||||
XSSFRow row;
|
XSSFRow row;
|
||||||
XSSFCell cell;
|
XSSFCell cell;
|
||||||
for(int i=0; i<3; i++) {
|
for(int i=0; i<3; i++) {
|
||||||
//Create column
|
// Create row
|
||||||
column = columns.addNewTableColumn();
|
|
||||||
column.setName("Column");
|
|
||||||
column.setId(i+1);
|
|
||||||
//Create row
|
|
||||||
row = sheet.createRow(i);
|
row = sheet.createRow(i);
|
||||||
for(int j=0; j<3; j++) {
|
for(int j=0; j<3; j++) {
|
||||||
//Create cell
|
// Create cell
|
||||||
cell = row.createCell(j);
|
cell = row.createCell(j);
|
||||||
if(i == 0) {
|
if(i == 0) {
|
||||||
cell.setCellValue("Column"+j);
|
cell.setCellValue("Column"+(j+1));
|
||||||
} else {
|
} else {
|
||||||
cell.setCellValue("0");
|
cell.setCellValue((i+1)*(j+1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Create the columns
|
||||||
|
table.addColumn();
|
||||||
|
table.addColumn();
|
||||||
|
table.addColumn();
|
||||||
|
|
||||||
|
// Set which area the table should be placed in
|
||||||
|
AreaReference reference = new AreaReference(new CellReference(0, 0),
|
||||||
|
new CellReference(2,2));
|
||||||
|
table.setCellReferences(reference);
|
||||||
|
|
||||||
|
// Save
|
||||||
FileOutputStream fileOut = new FileOutputStream("ooxml-table.xlsx");
|
FileOutputStream fileOut = new FileOutputStream("ooxml-table.xlsx");
|
||||||
wb.write(fileOut);
|
wb.write(fileOut);
|
||||||
fileOut.close();
|
fileOut.close();
|
||||||
|
@ -3975,6 +3975,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
|||||||
RelationPart rp = createRelationship(XSSFRelation.TABLE, XSSFFactory.getInstance(), tableNumber, false);
|
RelationPart rp = createRelationship(XSSFRelation.TABLE, XSSFFactory.getInstance(), tableNumber, false);
|
||||||
XSSFTable table = rp.getDocumentPart();
|
XSSFTable table = rp.getDocumentPart();
|
||||||
tbl.setId(rp.getRelationship().getId());
|
tbl.setId(rp.getRelationship().getId());
|
||||||
|
table.getCTTable().setId(tableNumber);
|
||||||
|
|
||||||
tables.put(tbl.getId(), table);
|
tables.put(tbl.getId(), table);
|
||||||
|
|
||||||
|
@ -343,6 +343,8 @@ public class XSSFTable extends POIXMLDocumentPart implements Table {
|
|||||||
* Does not track updates to underlying changes to CTTable
|
* Does not track updates to underlying changes to CTTable
|
||||||
* To synchronize with changes to the underlying CTTable,
|
* To synchronize with changes to the underlying CTTable,
|
||||||
* call {@link #updateReferences()}.
|
* call {@link #updateReferences()}.
|
||||||
|
*
|
||||||
|
* @since 3.17 beta 1
|
||||||
*/
|
*/
|
||||||
public AreaReference getCellReferences() {
|
public AreaReference getCellReferences() {
|
||||||
return new AreaReference(
|
return new AreaReference(
|
||||||
@ -354,6 +356,8 @@ public class XSSFTable extends POIXMLDocumentPart implements Table {
|
|||||||
* Updates the reference for the cells of the table
|
* Updates the reference for the cells of the table
|
||||||
* (see Open Office XML Part 4: chapter 3.5.1.2, attribute ref)
|
* (see Open Office XML Part 4: chapter 3.5.1.2, attribute ref)
|
||||||
* and synchronizes any changes
|
* and synchronizes any changes
|
||||||
|
*
|
||||||
|
* @since 3.17 beta 1
|
||||||
*/
|
*/
|
||||||
public void setCellReferences(AreaReference refs) {
|
public void setCellReferences(AreaReference refs) {
|
||||||
// Strip the Sheet name
|
// Strip the Sheet name
|
||||||
|
@ -346,7 +346,7 @@ public final class TestXSSFTable {
|
|||||||
// Setting up the CTTable
|
// Setting up the CTTable
|
||||||
XSSFTable t = s.createTable();
|
XSSFTable t = s.createTable();
|
||||||
t.setName("TableTest");
|
t.setName("TableTest");
|
||||||
t.setDisplayName("CT Table Test");
|
t.setDisplayName("CT_Table_Test");
|
||||||
t.addColumn();
|
t.addColumn();
|
||||||
t.addColumn();
|
t.addColumn();
|
||||||
t.addColumn();
|
t.addColumn();
|
||||||
|
Loading…
Reference in New Issue
Block a user