/** * Get the WorksheetPart * @return * @since 3.3.3 */ public WorksheetPart getWorksheetPart() { return ((Worksheet)getParent()).getWorksheetPart(); }
/** * Create an instance of {@link SheetData } * */ public SheetData createSheetData() { return new SheetData(); }
/** * Get the WorksheetPart * @return * @since 3.3.3 */ public WorksheetPart getWorksheetPart() { return ((SheetData)getParent()).getWorksheetPart(); }
protected Row createNewRow(Worksheet resultSheet) { Row newRow = Context.getsmlObjectFactory().createRow(); Long currentRow = lastRowForSheet.get(resultSheet); currentRow = currentRow != null ? currentRow : 0; currentRow++; newRow.setR(currentRow); lastRowForSheet.put(resultSheet, currentRow); resultSheet.getSheetData().getRow().add(newRow); newRow.setParent(resultSheet.getSheetData()); return newRow; }
/** * This method is invoked by the JAXB implementation on each instance when unmarshalling completes. * * @param parent * The parent object in the object tree. * @param unmarshaller * The unmarshaller that generated the instance. */ public void afterUnmarshal(Unmarshaller unmarshaller, Object parent) { setParent(parent); }
protected Row createNewRow(Worksheet resultSheet) { Row newRow = Context.getsmlObjectFactory().createRow(); Long currentRow = lastRowForSheet.get(resultSheet); currentRow = currentRow != null ? currentRow : 0; currentRow++; newRow.setR(currentRow); lastRowForSheet.put(resultSheet, currentRow); resultSheet.getSheetData().getRow().add(newRow); newRow.setParent(resultSheet.getSheetData()); return newRow; }
/** * This method is invoked by the JAXB implementation on each instance when unmarshalling completes. * * @param parent * The parent object in the object tree. * @param unmarshaller * The unmarshaller that generated the instance. */ public void afterUnmarshal(Unmarshaller unmarshaller, Object parent) { setParent(parent); }
protected void saveXlsxAsCsv(Document document, OutputStream outputStream) throws IOException, Docx4JException { CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream), ';', CSVWriter.DEFAULT_QUOTE_CHARACTER); for (Document.SheetWrapper sheetWrapper : document.getWorksheets()) { Worksheet worksheet = sheetWrapper.getWorksheet().getContents(); for (Row row : worksheet.getSheetData().getRow()) { String rows[] = new String[row.getC().size()]; List<Cell> cells = row.getC(); boolean emptyRow = true; for (int i = 0; i < cells.size(); i++) { checkThreadInterrupted(); Cell cell = cells.get(i); String value = cell.getV(); rows[i] = value; if (value != null && !value.isEmpty()) emptyRow = false; } if (!emptyRow) writer.writeNext(rows); } } writer.close(); }
/** * Get the WorksheetPart * @return * @since 3.3.3 */ public WorksheetPart getWorksheetPart() { return ((Worksheet)getParent()).getWorksheetPart(); }
/** * Create an instance of {@link SheetData } * */ public SheetData createSheetData() { return new SheetData(); }
/** * Get the WorksheetPart * @return * @since 3.3.3 */ public WorksheetPart getWorksheetPart() { return ((SheetData)getParent()).getWorksheetPart(); }
protected void saveXlsxAsCsv(Document document, OutputStream outputStream) throws IOException, Docx4JException { CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream), ';', CSVWriter.DEFAULT_QUOTE_CHARACTER); for (Document.SheetWrapper sheetWrapper : document.getWorksheets()) { Worksheet worksheet = sheetWrapper.getWorksheet().getContents(); for (Row row : worksheet.getSheetData().getRow()) { String rows[] = new String[row.getC().size()]; List<Cell> cells = row.getC(); boolean emptyRow = true; for (int i = 0; i < cells.size(); i++) { checkThreadInterrupted(); Cell cell = cells.get(i); String value = cell.getV(); rows[i] = value; if (value != null && !value.isEmpty()) emptyRow = false; } if (!emptyRow) writer.writeNext(rows); } } writer.close(); }
protected Worksheet getWorksheet(Row newRow) { SheetData resultSheetData = (SheetData) newRow.getParent(); return (Worksheet) resultSheetData.getParent(); }
public Map<CellReference, Cell> getCellsByRange(Range range) { Worksheet sheet = getSheetByName(range.getSheet()); SheetData data = sheet.getSheetData(); Map<CellReference, Cell> result = new LinkedHashMap<>(); for (int i = 1; i <= data.getRow().size(); i++) { Row row = data.getRow().get(i - 1); if (range.getFirstRow() <= row.getR() && row.getR() <= range.getLastRow()) { List<Cell> c = row.getC(); for (Cell cell : c) { CellReference cellReference = new CellReference(range.getSheet(), cell.getR()); if (range.getFirstColumn() <= cellReference.getColumn() && cellReference.getColumn() <= range.getLastColumn()) { result.put(cellReference, cell); } } } } return result; }
protected Worksheet getWorksheet(Row newRow) { SheetData resultSheetData = (SheetData) newRow.getParent(); return (Worksheet) resultSheetData.getParent(); }
public Map<CellReference, Cell> getCellsByRange(Range range) { Worksheet sheet = getSheetByName(range.getSheet()); SheetData data = sheet.getSheetData(); Map<CellReference, Cell> result = new LinkedHashMap<CellReference, Cell>(); for (int i = 1; i <= data.getRow().size(); i++) { Row row = data.getRow().get(i - 1); if (range.getFirstRow() <= row.getR() && row.getR() <= range.getLastRow()) { List<Cell> c = row.getC(); for (Cell cell : c) { CellReference cellReference = new CellReference(range.getSheet(), cell.getR()); if (range.getFirstColumn() <= cellReference.getColumn() && cellReference.getColumn() <= range.getLastColumn()) { result.put(cellReference, cell); } } } } return result; }
protected List<Cell> copyCells(BandData band, Range templateRange, List<Row> resultSheetRows, Row firstRow, Worksheet resultSheet) { List<Cell> resultCells = new ArrayList<Cell>(); for (int i = 0; i <= templateRange.getLastRow() - templateRange.getFirstRow(); i++) { Range oneRowRange = new Range(templateRange.getSheet(), templateRange.getFirstColumn(), templateRange.getFirstRow() + i, templateRange.getLastColumn(), templateRange.getFirstRow() + i); Map<CellReference, Cell> cellsForOneRowRange = template.getCellsByRange(oneRowRange); List<Cell> templateCells = new ArrayList<Cell>(cellsForOneRowRange.values()); Row templateRow = !templateCells.isEmpty() ? (Row) templateCells.get(0).getParent() : resultSheet.getSheetData().getRow().get(oneRowRange.getFirstRow() - 1); createFakeTemplateCellsForEmptyOnes(oneRowRange, cellsForOneRowRange, templateCells); Row resultRow = resultSheetRows.get((int) (firstRow.getR() + i - 1)); List<Cell> currentRowResultCells = copyCells(templateRange, band, resultRow, templateCells); resultCells.addAll(currentRowResultCells); copyRowSettings(templateRow, resultRow, getWorksheet(templateRow), getWorksheet(resultRow)); } return resultCells; }
protected Row ensureNecessaryRowsCreated(Range templateRange, Worksheet resultSheet, Row firstRow) { if (firstRow == null) { firstRow = createNewRow(resultSheet); } if (resultSheet.getSheetData().getRow().size() < firstRow.getR() + templateRange.getLastRow() - templateRange.getFirstRow()) { for (int i = 0; i < templateRange.getLastRow() - templateRange.getFirstRow(); i++) { Row row = createNewRow(resultSheet); } } return firstRow; }
protected Row ensureNecessaryRowsCreated(Range templateRange, Worksheet resultSheet, Row firstRow) { if (firstRow == null) { firstRow = createNewRow(resultSheet); } if (resultSheet.getSheetData().getRow().size() < firstRow.getR() + templateRange.getLastRow() - templateRange.getFirstRow()) { for (int i = 0; i < templateRange.getLastRow() - templateRange.getFirstRow(); i++) { Row row = createNewRow(resultSheet); } } return firstRow; }
protected List<Cell> copyCells(BandData band, Range templateRange, List<Row> resultSheetRows, Row firstRow, Worksheet resultSheet) { List<Cell> resultCells = new ArrayList<>(); for (int i = 0; i <= templateRange.getLastRow() - templateRange.getFirstRow(); i++) { Range oneRowRange = new Range(templateRange.getSheet(), templateRange.getFirstColumn(), templateRange.getFirstRow() + i, templateRange.getLastColumn(), templateRange.getFirstRow() + i); Map<CellReference, Cell> cellsForOneRowRange = template.getCellsByRange(oneRowRange); List<Cell> templateCells = new ArrayList<>(cellsForOneRowRange.values()); Row templateRow = !templateCells.isEmpty() ? (Row) templateCells.get(0).getParent() : resultSheet.getSheetData().getRow().get(oneRowRange.getFirstRow() - 1); createFakeTemplateCellsForEmptyOnes(oneRowRange, cellsForOneRowRange, templateCells); Row resultRow = resultSheetRows.get((int) (firstRow.getR() + i - 1)); List<Cell> currentRowResultCells = copyCells(templateRange, band, resultRow, templateCells); resultCells.addAll(currentRowResultCells); copyRowSettings(templateRow, resultRow, getWorksheet(templateRow), getWorksheet(resultRow)); } return resultCells; }