I want to add a cell in xlsx workbooks sheet containing the quote prefix, and i am trying to create that sheet using POI library. How do I add this type of cell
I found a reference to this with CTXf.setQuotePrefix(boolean quotePrefix) on maven central, but dont know how to add this to the XSSFCell
I have tried using below code
XSSFCell cell=row.createCell(cellIndex); CTXfImpl ctxf= new CTXfImpl(XmlObject.Factory.newInstance().schemaType()); ctxf.setQuotePrefix(true); cell.getCTCell().set(ctxf); cell.setCellValue(data);
getting exception
Exception in thread "main" java.lang.NullPointerException at org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTXfImpl.setQuotePrefix(Unknown Source)
Can anyone help me with this
The CTXf
and also the quotePrefix
property is part of the XSSFCellStyle
and not the XSSFCell
.
So we must create a XSSFCellStyle
, set the quotePrefix
there and then apply this XSSFCellStyle
to the XSSFCell
.
import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; import java.io.FileOutputStream; import java.io.IOException; class WriteQuotePrefix { public static void main(String[] args) { try { Workbook wb = new XSSFWorkbook(); CellStyle style = wb.createCellStyle(); ((XSSFCellStyle)style).getCoreXf().setQuotePrefix(true); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellStyle(style); cell.setCellValue("1234"); FileOutputStream fileOut = new FileOutputStream("WriteQuotePrefix.xlsx"); wb.write(fileOut); } catch (IOException ioex) { } } }