/** * NOTICE: ORIGINAL FILE MODIFIED */ package com.aspose.cells.examples.featurescomparison.workbook.createnewspreadsheet; import org.docx4j.openpackaging.io.SaveToZipFile; import org.docx4j.openpackaging.packages.SpreadsheetMLPackage; import org.docx4j.openpackaging.parts.PartName; import org.docx4j.openpackaging.parts.SpreadsheetML.WorksheetPart; import org.xlsx4j.jaxb.Context; import org.xlsx4j.sml.CTRst; import org.xlsx4j.sml.CTXstringWhitespace; import org.xlsx4j.sml.Cell; import org.xlsx4j.sml.Row; import org.xlsx4j.sml.STCellType; import org.xlsx4j.sml.SheetData; import org.xlsx4j.sml.Worksheet; import com.aspose.cells.examples.Utils; public class Xlsx4jNewSpreadSheet { public static void main(String[] args) throws Exception { // The path to the documents directory. String dataDir = Utils.getDataDir(Xlsx4jNewSpreadSheet.class); String outputfilepath = dataDir + "newWorksheet_Xlsx4j.xlsx"; SpreadsheetMLPackage pkg = SpreadsheetMLPackage.createPackage(); WorksheetPart sheet = pkg.createWorksheetPart(new PartName("/xl/worksheets/sheet1.xml"), "Sheet1", 1); addContent(sheet); SaveToZipFile saver = new SaveToZipFile(pkg); saver.save(outputfilepath); System.out.println("\n\n done .. " + outputfilepath); } private static void addContent(WorksheetPart sheet) { // Minimal content already present SheetData sheetData = sheet.getJaxbElement().getSheetData(); // Now add Row row = Context.getsmlObjectFactory().createRow(); Cell cell = Context.getsmlObjectFactory().createCell(); cell.setV("1234"); row.getC().add(cell); row.getC().add(createCell("hello world!")); sheetData.getRow().add(row); } /** // Note: if you are trying to add characters, not a number, // the easiest approach is to use inline strings (as opposed to the shared string table). // See http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2011/11/22/screen-cast-write-simpler-spreadsheetml-when-generating-spreadsheets.aspx // and http://www.docx4java.org/forums/xlsx-java-f15/cells-with-character-values-t874.html */ private static Cell createCell(String content) { Cell cell = Context.getsmlObjectFactory().createCell(); CTXstringWhitespace ctx = Context.getsmlObjectFactory().createCTXstringWhitespace(); ctx.setValue(content); CTRst ctrst = new CTRst(); ctrst.setT(ctx); cell.setT(STCellType.INLINE_STR); cell.setIs(ctrst); // add ctrst as inline string return cell; } }