use of org.apache.poi.xssf.usermodel.XSSFCellStyle in project cubrid-manager by CUBRID.
the class ExportTableDataTask method createSheetWriter.
/**
* Create the instance of SpreadsheetWriter and based upon the given
* condition writing the header of a sheet
*
* @param workbook the instance of Workbook
* @param xlsxWriterhelper the instance of XlsxWriterHelper
* @param sheetNum the number of a sheet
* @param fileMap a map includes the temporary file and its name
* @param columnTitles the column title
* @param xssfRowNum the number of row
* @throws IOException the exception
* @return the instance of XlsxWriterHelper.SpreadsheetWriter
*/
private XlsxWriterHelper.SpreadsheetWriter createSheetWriter(XSSFWorkbook workbook, XlsxWriterHelper xlsxWriterhelper, int sheetNum, Map<String, File> fileMap, List<String> columnTitles, int xssfRowNum) throws IOException {
// FIXME move this logic to core module
XSSFSheet sheet = workbook.createSheet("sheet" + sheetNum);
String sheetRef = sheet.getPackagePart().getPartName().getName().substring(1);
File tmp = File.createTempFile("sheet" + sheetNum, ".xml");
fileMap.put(sheetRef, tmp);
String charset = null;
if (fileCharset == null || fileCharset.trim().length() == 0) {
charset = "UTF-8";
} else {
charset = fileCharset;
}
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(tmp), charset);
XlsxWriterHelper.SpreadsheetWriter sheetWriter = new XlsxWriterHelper.SpreadsheetWriter(writer);
sheetWriter.setCharset(charset);
sheetWriter.beginSheet();
if (isFirstRowAsColumnName && columnTitles != null) {
sheetWriter.insertRow(xssfRowNum);
int styleIndex = ((XSSFCellStyle) xlsxWriterhelper.getStyles(workbook).get("header")).getIndex();
for (int index = 0; index < columnTitles.size(); index++) {
sheetWriter.createCell(index, columnTitles.get(index), styleIndex);
}
sheetWriter.endRow();
}
return sheetWriter;
}
use of org.apache.poi.xssf.usermodel.XSSFCellStyle in project cubrid-manager by CUBRID.
the class XlsxWriterHelper method getStyles.
/**
* create the cell style which is used for the head or date type cell
*
* @param workbook the instance of XSSFWorkbook
* @return Map<String, XSSFCellStyle>
*/
public Map<String, XSSFCellStyle> getStyles(XSSFWorkbook workbook) {
Map<String, XSSFCellStyle> styles = new HashMap<String, XSSFCellStyle>();
XSSFDataFormat fmt = workbook.createDataFormat();
XSSFCellStyle datetimeStyle = workbook.createCellStyle();
datetimeStyle.setAlignment((short) 3);
datetimeStyle.setDataFormat(fmt.getFormat("yyyy-mmm-dd h:mm:ss.ss"));
styles.put("datetime", datetimeStyle);
XSSFCellStyle timestampStyle = workbook.createCellStyle();
timestampStyle.setAlignment((short) 3);
timestampStyle.setDataFormat(fmt.getFormat("yyyy-mmm-dd h:mm:ss"));
styles.put("timestamp", timestampStyle);
XSSFCellStyle dateStyle = workbook.createCellStyle();
dateStyle.setAlignment((short) 3);
dateStyle.setDataFormat(fmt.getFormat("yyyy-mmm-dd"));
styles.put("date", dateStyle);
XSSFCellStyle timeStyle = workbook.createCellStyle();
timeStyle.setAlignment((short) 3);
timeStyle.setDataFormat(fmt.getFormat("h:mm:ss"));
styles.put("time", timeStyle);
XSSFCellStyle headerStyle = workbook.createCellStyle();
XSSFFont headerFont = workbook.createFont();
headerFont.setBold(true);
headerStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
headerStyle.setFillPattern((short) 1);
headerStyle.setFont(headerFont);
styles.put("header", headerStyle);
return styles;
}
use of org.apache.poi.xssf.usermodel.XSSFCellStyle in project cubrid-manager by CUBRID.
the class ExportToXlsxHandler method createSheetWriter.
/**
* Create the instance of SpreadsheetWriter and based upon the given
* condition writing the header of a sheet
*
* @param workbook the instance of Workbook
* @param xlsxWriterhelper the instance of XlsxWriterHelper
* @param sheetNum the number of a sheet
* @param fileMap a map includes the temporary file and its name
* @param columnTitles the column title
* @param xssfRowNum the number of row
* @throws IOException the exception
* @return the instance of XlsxWriterHelper.SpreadsheetWriter
*/
private XlsxWriterHelper.SpreadsheetWriter createSheetWriter(XSSFWorkbook workbook, XlsxWriterHelper xlsxWriterhelper, int sheetNum, Map<String, File> fileMap, List<String> columnTitles, int xssfRowNum) throws IOException {
// FIXME move this logic to core module
XSSFSheet sheet = workbook.createSheet("sheet" + sheetNum);
String sheetRef = sheet.getPackagePart().getPartName().getName().substring(1);
File tmp = File.createTempFile("sheet" + sheetNum, ".xml");
fileMap.put(sheetRef, tmp);
String charset = null;
if (StringUtil.isEmpty(exportConfig.getFileCharset())) {
charset = "UTF-8";
} else {
charset = exportConfig.getFileCharset();
}
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(tmp), charset);
XlsxWriterHelper.SpreadsheetWriter sheetWriter = new XlsxWriterHelper.SpreadsheetWriter(writer);
sheetWriter.setCharset(charset);
sheetWriter.beginSheet();
if (exportConfig.isFirstRowAsColumnName() && columnTitles != null) {
sheetWriter.insertRow(xssfRowNum);
int styleIndex = ((XSSFCellStyle) xlsxWriterhelper.getStyles(workbook).get("header")).getIndex();
for (int index = 0; index < columnTitles.size(); index++) {
sheetWriter.createCell(index, columnTitles.get(index), styleIndex);
}
sheetWriter.endRow();
}
return sheetWriter;
}
use of org.apache.poi.xssf.usermodel.XSSFCellStyle in project poi by apache.
the class XSSFHtmlHelper method colorStyles.
@Override
public void colorStyles(CellStyle style, Formatter out) {
XSSFCellStyle cs = (XSSFCellStyle) style;
styleColor(out, "background-color", cs.getFillForegroundXSSFColor());
styleColor(out, "text-color", cs.getFont().getXSSFColor());
}
use of org.apache.poi.xssf.usermodel.XSSFCellStyle in project poi by apache.
the class XSSFSheetXMLHandler method startElement.
@Override
@SuppressWarnings("unused")
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if (uri != null && !uri.equals(NS_SPREADSHEETML)) {
return;
}
if (isTextTag(localName)) {
vIsOpen = true;
// Clear contents cache
value.setLength(0);
} else if ("is".equals(localName)) {
// Inline string outer tag
isIsOpen = true;
} else if ("f".equals(localName)) {
// Clear contents cache
formula.setLength(0);
// Mark us as being a formula if not already
if (nextDataType == xssfDataType.NUMBER) {
nextDataType = xssfDataType.FORMULA;
}
// Decide where to get the formula string from
String type = attributes.getValue("t");
if (type != null && type.equals("shared")) {
// Is it the one that defines the shared, or uses it?
String ref = attributes.getValue("ref");
String si = attributes.getValue("si");
if (ref != null) {
// This one defines it
// TODO Save it somewhere
fIsOpen = true;
} else {
// match the current cell
if (formulasNotResults) {
logger.log(POILogger.WARN, "shared formulas not yet supported!");
}
/*else {
// It's a shared formula, so we can't get at the formula string yet
// However, they don't care about the formula string, so that's ok!
}*/
}
} else {
fIsOpen = true;
}
} else if ("oddHeader".equals(localName) || "evenHeader".equals(localName) || "firstHeader".equals(localName) || "firstFooter".equals(localName) || "oddFooter".equals(localName) || "evenFooter".equals(localName)) {
hfIsOpen = true;
// Clear contents cache
headerFooter.setLength(0);
} else if ("row".equals(localName)) {
String rowNumStr = attributes.getValue("r");
if (rowNumStr != null) {
rowNum = Integer.parseInt(rowNumStr) - 1;
} else {
rowNum = nextRowNum;
}
output.startRow(rowNum);
} else // c => cell
if ("c".equals(localName)) {
// Set up defaults.
this.nextDataType = xssfDataType.NUMBER;
this.formatIndex = -1;
this.formatString = null;
cellRef = attributes.getValue("r");
String cellType = attributes.getValue("t");
String cellStyleStr = attributes.getValue("s");
if ("b".equals(cellType))
nextDataType = xssfDataType.BOOLEAN;
else if ("e".equals(cellType))
nextDataType = xssfDataType.ERROR;
else if ("inlineStr".equals(cellType))
nextDataType = xssfDataType.INLINE_STRING;
else if ("s".equals(cellType))
nextDataType = xssfDataType.SST_STRING;
else if ("str".equals(cellType))
nextDataType = xssfDataType.FORMULA;
else {
// Number, but almost certainly with a special style or format
XSSFCellStyle style = null;
if (stylesTable != null) {
if (cellStyleStr != null) {
int styleIndex = Integer.parseInt(cellStyleStr);
style = stylesTable.getStyleAt(styleIndex);
} else if (stylesTable.getNumCellStyles() > 0) {
style = stylesTable.getStyleAt(0);
}
}
if (style != null) {
this.formatIndex = style.getDataFormat();
this.formatString = style.getDataFormatString();
if (this.formatString == null)
this.formatString = BuiltinFormats.getBuiltinFormat(this.formatIndex);
}
}
}
}
Aggregations