List of usage examples for org.apache.poi.hssf.converter AbstractExcelConverter getColumnWidth
protected static int getColumnWidth(HSSFSheet sheet, int columnIndex)
From source file:com.wangzhu.poi.ExcelToHtmlConverter.java
License:Apache License
/** * Creates COLGROUP element with width specified for all columns. (Except * first if <tt>{@link #isOutputRowNumbers()}==true</tt>) *//*w w w .j a va 2 s .c om*/ protected void processColumnWidths(HSSFSheet sheet, int maxSheetColumns, Element table) { // draw COLS after we know max column number Element columnGroup = this.htmlDocumentFacade.createTableColumnGroup(); if (this.isOutputRowNumbers()) { columnGroup.appendChild(this.htmlDocumentFacade.createTableColumn()); } for (int c = 0; c < maxSheetColumns; c++) { if (!this.isOutputHiddenColumns() && sheet.isColumnHidden(c)) { continue; } Element col = this.htmlDocumentFacade.createTableColumn(); col.setAttribute("width", String.valueOf(AbstractExcelConverter.getColumnWidth(sheet, c))); columnGroup.appendChild(col); } table.appendChild(columnGroup); }
From source file:com.wangzhu.poi.ExcelToHtmlConverter.java
License:Apache License
/** * @return maximum 1-base index of column that were rendered, zero if none *///from w w w.ja v a 2 s .co m protected int processRow(CellRangeAddress[][] mergedRanges, HSSFRow row, Element tableRowElement) { final HSSFSheet sheet = row.getSheet(); final short maxColIx = row.getLastCellNum(); if (maxColIx <= 0) { return 0; } final List emptyCells = new ArrayList(maxColIx); if (this.isOutputRowNumbers()) { Element tableRowNumberCellElement = this.htmlDocumentFacade.createTableHeaderCell(); this.processRowNumber(row, tableRowNumberCellElement); emptyCells.add(tableRowNumberCellElement); } int maxRenderedColumn = 0; for (int colIx = 0; colIx < maxColIx; colIx++) { if (!this.isOutputHiddenColumns() && sheet.isColumnHidden(colIx)) { continue; } CellRangeAddress range = AbstractExcelUtils.getMergedRange(mergedRanges, row.getRowNum(), colIx); if ((range != null) && ((range.getFirstColumn() != colIx) || (range.getFirstRow() != row.getRowNum()))) { continue; } HSSFCell cell = row.getCell(colIx); int divWidthPx = 0; if (this.isUseDivsToSpan()) { divWidthPx = AbstractExcelConverter.getColumnWidth(sheet, colIx); boolean hasBreaks = false; for (int nextColumnIndex = colIx + 1; nextColumnIndex < maxColIx; nextColumnIndex++) { if (!this.isOutputHiddenColumns() && sheet.isColumnHidden(nextColumnIndex)) { continue; } if ((row.getCell(nextColumnIndex) != null) && !this.isTextEmpty(row.getCell(nextColumnIndex))) { hasBreaks = true; break; } divWidthPx += AbstractExcelConverter.getColumnWidth(sheet, nextColumnIndex); } if (!hasBreaks) { divWidthPx = Integer.MAX_VALUE; } } Element tableCellElement = this.htmlDocumentFacade.createTableCell(); if (range != null) { if (range.getFirstColumn() != range.getLastColumn()) { tableCellElement.setAttribute("colspan", String.valueOf((range.getLastColumn() - range.getFirstColumn()) + 1)); } if (range.getFirstRow() != range.getLastRow()) { tableCellElement.setAttribute("rowspan", String.valueOf((range.getLastRow() - range.getFirstRow()) + 1)); } } boolean emptyCell; if (cell != null) { emptyCell = this.processCell(cell, tableCellElement, AbstractExcelConverter.getColumnWidth(sheet, colIx), divWidthPx, row.getHeight() / 20f); } else { emptyCell = true; } if (emptyCell) { emptyCells.add(tableCellElement); } else { for (Iterator iterator = emptyCells.iterator(); iterator.hasNext();) { Element emptyCellElement = (Element) iterator.next(); tableRowElement.appendChild(emptyCellElement); } emptyCells.clear(); tableRowElement.appendChild(tableCellElement); maxRenderedColumn = colIx; } } return maxRenderedColumn + 1; }