org.odftoolkit.odfdom.doc.table
Class OdfTable

java.lang.Object
  extended by org.odftoolkit.odfdom.doc.table.OdfTable

public class OdfTable
extends java.lang.Object

OdfTable represents the table feature in ODF spreadsheet and text documents.

OdfTable provides methods to get/add/delete/modify table column/row/cell.


Field Summary
protected  OdfDocument mDocument
           
protected  boolean mIsSpreadsheet
           
 
Method Summary
 OdfTableColumn appendColumn()
          Append a column to the right of the table.
 java.util.List<OdfTableColumn> appendColumns(int clmCount)
          Append a specific number of columns to the right of the table.
 OdfTableRow appendRow()
          Append a row to the end of the table.
 java.util.List<OdfTableRow> appendRows(int rowCount)
          Append a specific number of rows to the end of the table.
 OdfTableCell getCellByPosition(int colIndex, int rowIndex)
          Return a single cell that is positioned at the specified column and row.
 OdfTableCell getCellByPosition(java.lang.String address)
          Return a single cell that is positioned at the specified cell address.
 OdfTableCellRange getCellRangeByName(java.lang.String name)
          Return a range of cells by a specified name.
 OdfTableCellRange getCellRangeByPosition(int startCol, int startRow, int endCol, int endRow)
          Return a range of cells within the specified range.
 OdfTableCellRange getCellRangeByPosition(java.lang.String startAddress, java.lang.String endAddress)
          Return a range of cells within the specified range.
 OdfTableColumn getColumnByIndex(int index)
          Get the column at the specified index.
 int getColumnCount()
          Get the column count of this table.
 java.util.List<OdfTableColumn> getColumnList()
          Return a list of columns in the current table.
 int getHeaderColumnCount()
          Return the number of header columns in the table.
 int getHeaderRowCount()
          Return the number of header rows in this table.
static OdfTable getInstance(TableTableElement odfElement)
          Get a table feature instance by an instance of TableTableElement.
 TableTableElement getOdfElement()
          Return an instance of TableTableElement which represents this feature.
 OdfTableRow getRowByIndex(int index)
          Get the row at the specified index.
 int getRowCount()
          Get the row count of this table.
 java.util.List<OdfTableRow> getRowList()
          Return a list of table rows in the current table.
 java.lang.String getTableName()
          Return the table name.
 long getWidth()
          Get the width of the table (in Millimeter).
 java.util.List<OdfTableColumn> insertColumnsBefore(int index, int clmCount)
          Insert a specific number of columns before the column whose index is index.
 java.util.List<OdfTableRow> insertRowsBefore(int index, int rowCount)
          Insert a specific number of rows before the row at index.
 boolean isProtected()
          Return true if the table is protected.
static OdfTable newTable(OdfDocument document)
          Construct the OdfTable feature.
static OdfTable newTable(OdfDocument document, int numRows, int numCols)
          Construct the OdfTable feature with a specified row number and column number.
static OdfTable newTable(OdfDocument document, int numRows, int numCols, int headerRowNumber, int headerColumnNumber)
          Construct the OdfTable feature with a specified row number, column number, header row number, header column number.
static OdfTable newTable(OdfDocument document, java.lang.String[] rowLabel, java.lang.String[] columnLabel, double[][] data)
          Construct the OdfTable feature with a specified 2 dimension array as the data of this table.
static OdfTable newTable(OdfDocument document, java.lang.String[] rowLabel, java.lang.String[] columnLabel, java.lang.String[][] data)
          Construct the OdfTable feature with a specified 2 dimension array as the data of this table.
 void remove()
          Remove this table from the document
 void removeColumnsByIndex(int startIndex, int deleteColCount)
          Remove a specific number of columns, starting from the column at index.
 void removeRowsByIndex(int startIndex, int deleteRowCount)
          Remove the specific number of rows, starting from the row at index.
 void setProtected(boolean isProtected)
          Set if the table is protected.
 void setTableName(java.lang.String tableName)
          Set the table name.
 void setWidth(long width)
          Set the width of the table (in Millimeter).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mDocument

protected OdfDocument mDocument

mIsSpreadsheet

protected boolean mIsSpreadsheet
Method Detail

getInstance

public static OdfTable getInstance(TableTableElement odfElement)
Get a table feature instance by an instance of TableTableElement.

Parameters:
odfElement - an instance of TableTableElement
Returns:
an instance of OdfTable that can represent odfElement

getWidth

public long getWidth()
Get the width of the table (in Millimeter).

Throw an UnsupportedOperationException if the table is one sheet of a spreadsheet document. because the sheet doesn't have an attribute of table width.

Returns:
the width of the current table (in Millimeter).

An UnsupportedOperationException will be thrown if the table is in the spreadsheet document.


setWidth

public void setWidth(long width)
Set the width of the table (in Millimeter).

Throw an UnsupportedOperationException if the table is part of a spreadsheet document that does not allow to change the table size, because spreadsheet is not allow user to set the table size.

Parameters:
width - the width that need to set (in Millimeter).

An UnsupportedOperationException will be thrown if the table is in the spreadsheet document.


newTable

public static OdfTable newTable(OdfDocument document)
Construct the OdfTable feature. The default column count is 5. The default row count is 2.

The table will be inserted at the end of the document. An unique table name will be given, you may set a custom table name using the setTableName method.

If the document is a text document, cell borders will be created by default.

Parameters:
document - the ODF document that contains this feature
Returns:
the created OdfTable feature instance

newTable

public static OdfTable newTable(OdfDocument document,
                                int numRows,
                                int numCols)
Construct the OdfTable feature with a specified row number and column number.

The table will be inserted at the end of the document. An unique table name will be given, you may set a custom table name using the setTableName method.

If the document is a text document, cell borders will be created by default.

Parameters:
document - the ODF document that contains this feature
numRows - the row number
numCols - the column number
Returns:
a new instance of OdfTable

newTable

public static OdfTable newTable(OdfDocument document,
                                int numRows,
                                int numCols,
                                int headerRowNumber,
                                int headerColumnNumber)
Construct the OdfTable feature with a specified row number, column number, header row number, header column number.

The table will be inserted at the end of the document. An unique table name will be given, you may set a custom table name using the setTableName method.

If the document is a text document, cell borders will be created by default.

Parameters:
document - the ODF document that contains this feature
numRows - the row number
numCols - the column number
headerRowNumber - the header row number
headerColumnNumber - the header column number
Returns:
a new instance of OdfTable

newTable

public static OdfTable newTable(OdfDocument document,
                                java.lang.String[] rowLabel,
                                java.lang.String[] columnLabel,
                                double[][] data)
Construct the OdfTable feature with a specified 2 dimension array as the data of this table. The value type of each cell is float.

The table will be inserted at the end of the document. An unique table name will be given, you may set a custom table name using the setTableName method.

If the document is a text document, cell borders will be created by default.

Parameters:
document - the ODF document that contains this feature
rowLabel - set as the header row, it can be null if no header row needed
columnLabel - set as the header column, it can be null if no header column needed
data - the two dimension array of double as the data of this table
Returns:
a new instance of OdfTable

newTable

public static OdfTable newTable(OdfDocument document,
                                java.lang.String[] rowLabel,
                                java.lang.String[] columnLabel,
                                java.lang.String[][] data)
Construct the OdfTable feature with a specified 2 dimension array as the data of this table. The value type of each cell is string.

The table will be inserted at the end of the document. An unique table name will be given, you may set a custom table name using the setTableName method.

If the document is a text document, cell borders will be created by default.

Parameters:
document - the ODF document that contains this feature
rowLabel - set as the header row, it can be null if no header row needed
columnLabel - set as the header column, it can be null if no header column needed
data - the two dimension array of string as the data of this table
Returns:
a new instance of OdfTable

getRowCount

public int getRowCount()
Get the row count of this table.

Returns:
total count of rows

getColumnCount

public int getColumnCount()
Get the column count of this table.

Returns:
total count of columns

appendRow

public OdfTableRow appendRow()
Append a row to the end of the table. The style of new row is same with the last row in the table.

Returns:
a new appended row

appendRows

public java.util.List<OdfTableRow> appendRows(int rowCount)
Append a specific number of rows to the end of the table. The style of new rows are same with the last row in the table.

Parameters:
rowCount - is the number of rows to be appended.
Returns:
a list of new appended rows

appendColumn

public OdfTableColumn appendColumn()
Append a column to the right of the table. The style of new column is same with the rightmost column in the table.

Returns:
a new appended column

appendColumns

public java.util.List<OdfTableColumn> appendColumns(int clmCount)
Append a specific number of columns to the right of the table. The style of new columns are same with the rightmost column in the table.

Parameters:
clmCount - is the number of columns to be appended.
Returns:
a list of new appended columns

getOdfElement

public TableTableElement getOdfElement()
Return an instance of TableTableElement which represents this feature.

Returns:
an instance of TableTableElement

insertColumnsBefore

public java.util.List<OdfTableColumn> insertColumnsBefore(int index,
                                                          int clmCount)
Insert a specific number of columns before the column whose index is index.

Parameters:
index - is the index of the column to insert before.
clmCount - is the number of columns to insert.
Returns:
a list of new inserted columns

removeColumnsByIndex

public void removeColumnsByIndex(int startIndex,
                                 int deleteColCount)
Remove a specific number of columns, starting from the column at index.

Parameters:
startIndex - is the index of the first column to delete.
deleteColCount - is the number of columns to delete.

insertRowsBefore

public java.util.List<OdfTableRow> insertRowsBefore(int index,
                                                    int rowCount)
Insert a specific number of rows before the row at index.

Parameters:
index - is the index of the row to insert before.
rowCount - is the number of rows to insert.
Returns:
a list of new inserted rows

getColumnList

public java.util.List<OdfTableColumn> getColumnList()
Return a list of columns in the current table.

Returns:
a list of table columns

getRowList

public java.util.List<OdfTableRow> getRowList()
Return a list of table rows in the current table.

Returns:
a list of table rows

getColumnByIndex

public OdfTableColumn getColumnByIndex(int index)
Get the column at the specified index. The table will be automatically expanded, when the given index is outside of the original table.

Parameters:
index - the zero-based index of the column.
Returns:
the column at the specified index

getRowByIndex

public OdfTableRow getRowByIndex(int index)
Get the row at the specified index. The table will be automatically expanded, when the given index is outside of the original table.

Parameters:
index - the zero-based index of the row.
Returns:
the row at the specified index

removeRowsByIndex

public void removeRowsByIndex(int startIndex,
                              int deleteRowCount)
Remove the specific number of rows, starting from the row at index.

Parameters:
startIndex - is the zero-based index of the first row to delete.
deleteRowCount - is the number of rows to delete.

remove

public void remove()
Remove this table from the document


getHeaderRowCount

public int getHeaderRowCount()
Return the number of header rows in this table.

Returns:
the number of header rows.

getHeaderColumnCount

public int getHeaderColumnCount()
Return the number of header columns in the table.

Returns:
the number of header columns.

getTableName

public java.lang.String getTableName()
Return the table name.

Returns:
the table name

setTableName

public void setTableName(java.lang.String tableName)
Set the table name.

Parameters:
tableName - the table name
Throws:
java.lang.IllegalArgumentException - if the tableName is duplicate with one of tables in the current document

isProtected

public boolean isProtected()
Return true if the table is protected.

Returns:
true if the table is protected

setProtected

public void setProtected(boolean isProtected)
Set if the table is protected.

Parameters:
isProtected - the protected attribute of the table to be set

getCellRangeByPosition

public OdfTableCellRange getCellRangeByPosition(int startCol,
                                                int startRow,
                                                int endCol,
                                                int endRow)
Return a range of cells within the specified range. The table will be automatically expanded as need.

Parameters:
startCol - the column index of the first cell inside the range.
startRow - the row index of the first cell inside the range.
endCol - the column index of the last cell inside the range.
endRow - the row index of the last cell inside the range.
Returns:
the specified cell range.

getCellRangeByPosition

public OdfTableCellRange getCellRangeByPosition(java.lang.String startAddress,
                                                java.lang.String endAddress)
Return a range of cells within the specified range. The range is specified by the cell address of the first cell and the cell address of the last cell. The table will be automatically expanded as need.

The cell address is constructed with a table name, a dot (.), an alphabetic value representing the column, and a numeric value representing the row. The table name can be omitted. For example: "$Sheet1.A1", "Sheet1.A1" and "A1" are all valid cell address.

Parameters:
startAddress - the cell address of the first cell inside the range.
endAddress - the cell address of the last cell inside the range.
Returns:
the specified cell range.

getCellRangeByName

public OdfTableCellRange getCellRangeByName(java.lang.String name)
Return a range of cells by a specified name.

After you get a cell range with getCellRangeByPosition, you can assign a name to this cell range with the method setCellRangeName in class OdfTableCellRange. Then you will get a named range which can be represented by name. This method can be used to get a named range.

Parameters:
name - the name of the specified named range
Returns:
the specified cell range.

getCellByPosition

public OdfTableCell getCellByPosition(int colIndex,
                                      int rowIndex)
Return a single cell that is positioned at the specified column and row. The table will be automatically expanded as need.

Parameters:
colIndex - the column index of the cell.
rowIndex - the row index of the cell.
Returns:
the cell at the specified position

getCellByPosition

public OdfTableCell getCellByPosition(java.lang.String address)
Return a single cell that is positioned at the specified cell address. The table can be automatically expanded as need.

The cell address is constructed with a table name, a dot (.), an alphabetic value representing the column, and a numeric value representing the row. The table name can be omitted. For example: "$Sheet1.A1", "Sheet1.A1" and "A1" are all valid cell address.

Parameters:
address - the cell address of the cell.
Returns:
the cell at the specified position.


Copyright © 2008-2010 ODF Toolkit Project. All Rights Reserved.