git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1092286 13f79535-47bb-0310-9956-ffa450edef68tags/REL_3_8_BETA3
@@ -34,6 +34,7 @@ | |||
<changes> | |||
<release version="3.8-beta3" date="2011-??-??"> | |||
<action dev="poi-developers" type="fix">Rename/Move xssf.model.Table to xssf.usermodel.XSSFTable as it now has usermodel-like features</action> | |||
<action dev="poi-developers" type="fix">51061 - Correct target URI for new XSSF Tables</action> | |||
<action dev="poi-developers" type="add">Initial support for XSSF Charts. Provides easy access to the underlying CTChart object via the Sheet Drawing, but no high level interface onto the chart contents as yet.</action> | |||
<action dev="poi-developers" type="fix">50884 - XSSF and HSSF freeze panes now behave the same</action> |
@@ -41,7 +41,7 @@ import javax.xml.validation.SchemaFactory; | |||
import javax.xml.validation.Validator; | |||
import org.apache.poi.openxml4j.exceptions.InvalidFormatException; | |||
import org.apache.poi.xssf.model.Table; | |||
import org.apache.poi.xssf.usermodel.XSSFTable; | |||
import org.apache.poi.xssf.usermodel.XSSFCell; | |||
import org.apache.poi.xssf.usermodel.XSSFMap; | |||
import org.apache.poi.xssf.usermodel.XSSFRow; | |||
@@ -123,7 +123,7 @@ public class XSSFExportToXml implements Comparator<String>{ | |||
*/ | |||
public void exportToXML(OutputStream os, String encoding, boolean validate) throws SAXException, ParserConfigurationException, TransformerException{ | |||
List<XSSFSingleXmlCell> singleXMLCells = map.getRelatedSingleXMLCell(); | |||
List<Table> tables = map.getRelatedTables(); | |||
List<XSSFTable> tables = map.getRelatedTables(); | |||
String rootElement = map.getCtMap().getRootElement(); | |||
@@ -141,13 +141,13 @@ public class XSSFExportToXml implements Comparator<String>{ | |||
List<String> xpaths = new Vector<String>(); | |||
Map<String,XSSFSingleXmlCell> singleXmlCellsMappings = new HashMap<String,XSSFSingleXmlCell>(); | |||
Map<String,Table> tableMappings = new HashMap<String,Table>(); | |||
Map<String,XSSFTable> tableMappings = new HashMap<String,XSSFTable>(); | |||
for(XSSFSingleXmlCell simpleXmlCell : singleXMLCells) { | |||
xpaths.add(simpleXmlCell.getXpath()); | |||
singleXmlCellsMappings.put(simpleXmlCell.getXpath(), simpleXmlCell); | |||
} | |||
for(Table table : tables) { | |||
for(XSSFTable table : tables) { | |||
String commonXPath = table.getCommonXpath(); | |||
xpaths.add(commonXPath); | |||
tableMappings.put(commonXPath, table); | |||
@@ -159,7 +159,7 @@ public class XSSFExportToXml implements Comparator<String>{ | |||
for(String xpath : xpaths) { | |||
XSSFSingleXmlCell simpleXmlCell = singleXmlCellsMappings.get(xpath); | |||
Table table = tableMappings.get(xpath); | |||
XSSFTable table = tableMappings.get(xpath); | |||
if (!xpath.matches(".*\\[.*")) { | |||
@@ -33,7 +33,7 @@ import javax.xml.xpath.XPathFactory; | |||
import org.apache.poi.util.POILogFactory; | |||
import org.apache.poi.util.POILogger; | |||
import org.apache.poi.xssf.model.Table; | |||
import org.apache.poi.xssf.usermodel.XSSFTable; | |||
import org.apache.poi.xssf.usermodel.XSSFCell; | |||
import org.apache.poi.xssf.usermodel.XSSFMap; | |||
import org.apache.poi.xssf.usermodel.XSSFRow; | |||
@@ -85,7 +85,7 @@ public class XSSFImportFromXML { | |||
List<XSSFSingleXmlCell> singleXmlCells = _map.getRelatedSingleXMLCell(); | |||
List<Table> tables = _map.getRelatedTables(); | |||
List<XSSFTable> tables = _map.getRelatedTables(); | |||
XPathFactory xpathFactory = XPathFactory.newInstance(); | |||
XPath xpath = xpathFactory.newXPath(); | |||
@@ -107,7 +107,7 @@ public class XSSFImportFromXML { | |||
cell.setCellValue(textContent); | |||
} | |||
for (Table table : tables) { | |||
for (XSSFTable table : tables) { | |||
String commonXPath = table.getCommonXpath(); | |||
NodeList result = (NodeList) xpath.evaluate(commonXPath, doc, XPathConstants.NODESET); |
@@ -24,7 +24,6 @@ import org.apache.poi.POIXMLDocumentPart; | |||
import org.apache.poi.util.Internal; | |||
import org.apache.poi.xssf.model.MapInfo; | |||
import org.apache.poi.xssf.model.SingleXmlCells; | |||
import org.apache.poi.xssf.model.Table; | |||
import org.apache.poi.xssf.usermodel.helpers.XSSFSingleXmlCell; | |||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTMap; | |||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSchema; | |||
@@ -101,16 +100,16 @@ public class XSSFMap { | |||
/** | |||
* @return the list of all Tables that provide a map rule to this mapping | |||
*/ | |||
public List<Table> getRelatedTables() { | |||
public List<XSSFTable> getRelatedTables() { | |||
List<Table> tables = new Vector<Table>(); | |||
List<XSSFTable> tables = new Vector<XSSFTable>(); | |||
int sheetNumber = mapInfo.getWorkbook().getNumberOfSheets(); | |||
for (int i = 0; i < sheetNumber; i++) { | |||
XSSFSheet sheet = mapInfo.getWorkbook().getSheetAt(i); | |||
for (POIXMLDocumentPart p : sheet.getRelations()) { | |||
if (p.getPackageRelationship().getRelationshipType().equals(XSSFRelation.TABLE.getRelation())) { | |||
Table table = (Table) p; | |||
XSSFTable table = (XSSFTable) p; | |||
if (table.mapsTo(ctMap.getID())) { | |||
tables.add(table); | |||
} |
@@ -39,7 +39,6 @@ import org.apache.poi.xssf.model.MapInfo; | |||
import org.apache.poi.xssf.model.SharedStringsTable; | |||
import org.apache.poi.xssf.model.SingleXmlCells; | |||
import org.apache.poi.xssf.model.StylesTable; | |||
import org.apache.poi.xssf.model.Table; | |||
import org.apache.poi.xssf.model.ThemesTable; | |||
/** | |||
@@ -146,7 +145,7 @@ public final class XSSFRelation extends POIXMLRelation { | |||
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml", | |||
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table", | |||
"/xl/tables/table#.xml", | |||
Table.class | |||
XSSFTable.class | |||
); | |||
public static final XSSFRelation IMAGES = new XSSFRelation( |
@@ -59,7 +59,6 @@ import org.apache.poi.util.Internal; | |||
import org.apache.poi.util.POILogFactory; | |||
import org.apache.poi.util.POILogger; | |||
import org.apache.poi.xssf.model.CommentsTable; | |||
import org.apache.poi.xssf.model.Table; | |||
import org.apache.poi.xssf.usermodel.helpers.ColumnHelper; | |||
import org.apache.poi.xssf.usermodel.helpers.XSSFRowShifter; | |||
import org.apache.xmlbeans.XmlException; | |||
@@ -130,7 +129,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { | |||
* Master shared formula is the first formula in a group of shared formulas is saved in the f element. | |||
*/ | |||
private Map<Integer, CTCellFormula> sharedFormulas; | |||
private TreeMap<String,Table> tables; | |||
private TreeMap<String,XSSFTable> tables; | |||
private List<CellRangeAddress> arrayFormulas; | |||
private XSSFDataValidationHelper dataValidationHelper; | |||
@@ -194,8 +193,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { | |||
sheetComments = (CommentsTable)p; | |||
break; | |||
} | |||
if(p instanceof Table) { | |||
tables.put( p.getPackageRelationship().getId(), (Table)p ); | |||
if(p instanceof XSSFTable) { | |||
tables.put( p.getPackageRelationship().getId(), (XSSFTable)p ); | |||
} | |||
} | |||
@@ -217,7 +216,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { | |||
@SuppressWarnings("deprecation") //YK: getXYZArray() array accessors are deprecated in xmlbeans with JDK 1.5 support | |||
private void initRows(CTWorksheet worksheet) { | |||
_rows = new TreeMap<Integer, XSSFRow>(); | |||
tables = new TreeMap<String, Table>(); | |||
tables = new TreeMap<String, XSSFTable>(); | |||
sharedFormulas = new HashMap<Integer, CTCellFormula>(); | |||
arrayFormulas = new ArrayList<CellRangeAddress>(); | |||
for (CTRow row : worksheet.getSheetData().getRowArray()) { | |||
@@ -3022,7 +3021,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { | |||
/** | |||
* Creates a new Table, and associates it with this Sheet | |||
*/ | |||
public Table createTable() { | |||
public XSSFTable createTable() { | |||
if(! worksheet.isSetTableParts()) { | |||
worksheet.addNewTableParts(); | |||
} | |||
@@ -3033,7 +3032,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { | |||
// Table numbers need to be unique in the file, not just | |||
// unique within the sheet. Find the next one | |||
int tableNumber = getPackagePart().getPackage().getPartsByContentType(XSSFRelation.TABLE.getContentType()).size() + 1; | |||
Table table = (Table)createRelationship(XSSFRelation.TABLE, XSSFFactory.getInstance(), tableNumber); | |||
XSSFTable table = (XSSFTable)createRelationship(XSSFRelation.TABLE, XSSFFactory.getInstance(), tableNumber); | |||
tbl.setId(table.getPackageRelationship().getId()); | |||
tables.put(tbl.getId(), table); | |||
@@ -3044,8 +3043,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { | |||
/** | |||
* Returns any tables associated with this Sheet | |||
*/ | |||
public List<Table> getTables() { | |||
List<Table> tableList = new ArrayList<Table>( | |||
public List<XSSFTable> getTables() { | |||
List<XSSFTable> tableList = new ArrayList<XSSFTable>( | |||
tables.values() | |||
); | |||
return tableList; |
@@ -15,7 +15,7 @@ | |||
limitations under the License. | |||
==================================================================== */ | |||
package org.apache.poi.xssf.model; | |||
package org.apache.poi.xssf.usermodel; | |||
import java.io.IOException; | |||
import java.io.InputStream; | |||
@@ -28,7 +28,6 @@ import org.apache.poi.POIXMLDocumentPart; | |||
import org.apache.poi.openxml4j.opc.PackagePart; | |||
import org.apache.poi.openxml4j.opc.PackageRelationship; | |||
import org.apache.poi.ss.util.CellReference; | |||
import org.apache.poi.xssf.usermodel.XSSFSheet; | |||
import org.apache.poi.xssf.usermodel.helpers.XSSFXmlColumnPr; | |||
import org.apache.xmlbeans.XmlException; | |||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable; | |||
@@ -47,7 +46,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.TableDocument; | |||
* | |||
* @author Roberto Manicardi | |||
*/ | |||
public class Table extends POIXMLDocumentPart { | |||
public class XSSFTable extends POIXMLDocumentPart { | |||
private CTTable ctTable; | |||
private List<XSSFXmlColumnPr> xmlColumnPr; | |||
@@ -56,13 +55,13 @@ public class Table extends POIXMLDocumentPart { | |||
private String commonXPath; | |||
public Table() { | |||
public XSSFTable() { | |||
super(); | |||
ctTable = CTTable.Factory.newInstance(); | |||
} | |||
public Table(PackagePart part, PackageRelationship rel) | |||
public XSSFTable(PackagePart part, PackageRelationship rel) | |||
throws IOException { | |||
super(part, rel); | |||
readFrom(part.getInputStream()); |
@@ -17,7 +17,7 @@ | |||
package org.apache.poi.xssf.usermodel.helpers; | |||
import org.apache.poi.xssf.model.Table; | |||
import org.apache.poi.xssf.usermodel.XSSFTable; | |||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn; | |||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTXmlColumnPr; | |||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STXmlDataType.Enum; | |||
@@ -33,11 +33,11 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.STXmlDataType.Enum; | |||
*/ | |||
public class XSSFXmlColumnPr { | |||
private Table table; | |||
private XSSFTable table; | |||
private CTTableColumn ctTableColumn; | |||
private CTXmlColumnPr ctXmlColumnPr; | |||
public XSSFXmlColumnPr(Table table ,CTTableColumn ctTableColum,CTXmlColumnPr ctXmlColumnPr){ | |||
public XSSFXmlColumnPr(XSSFTable table ,CTTableColumn ctTableColum,CTXmlColumnPr ctXmlColumnPr){ | |||
this.table = table; | |||
this.ctTableColumn = ctTableColum; | |||
this.ctXmlColumnPr = ctXmlColumnPr; |
@@ -43,7 +43,6 @@ import org.apache.poi.ss.usermodel.Workbook; | |||
import org.apache.poi.xssf.XSSFITestDataProvider; | |||
import org.apache.poi.xssf.XSSFTestDataSamples; | |||
import org.apache.poi.xssf.model.CalculationChain; | |||
import org.apache.poi.xssf.model.Table; | |||
import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill; | |||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet; | |||
@@ -852,7 +851,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { | |||
assertEquals(0, s2.getTables().size()); | |||
assertEquals(0, s3.getTables().size()); | |||
Table t = s1.getTables().get(0); | |||
XSSFTable t = s1.getTables().get(0); | |||
assertEquals("Tabella1", t.getName()); | |||
assertEquals("Tabella1", t.getDisplayName()); | |||
assertEquals("A1:C3", t.getCTTable().getRef()); |
@@ -26,7 +26,6 @@ import org.apache.poi.xssf.XSSFTestDataSamples; | |||
import org.apache.poi.xssf.model.CommentsTable; | |||
import org.apache.poi.xssf.model.StylesTable; | |||
import org.apache.poi.xssf.model.CalculationChain; | |||
import org.apache.poi.xssf.model.Table; | |||
import org.apache.poi.xssf.usermodel.helpers.ColumnHelper; | |||
import org.apache.poi.util.HexDump; | |||
import org.apache.poi.hssf.record.PasswordRecord; | |||
@@ -1050,11 +1049,11 @@ public final class TestXSSFSheet extends BaseTestSheet { | |||
assertEquals("a", s1.getRow(0).getCell(0).getRichStringCellValue().toString()); | |||
assertEquals(1.0, s1.getRow(1).getCell(0).getNumericCellValue()); | |||
List<Table> tables = s1.getTables(); | |||
List<XSSFTable> tables = s1.getTables(); | |||
assertNotNull(tables); | |||
assertEquals(1, tables.size()); | |||
Table table = tables.get(0); | |||
XSSFTable table = tables.get(0); | |||
assertEquals("Tabella1", table.getName()); | |||
assertEquals("Tabella1", table.getDisplayName()); | |||