public void LoadSave() { XSSFWorkbook workbook = XSSFTestDataSamples.OpenSampleWorkbook("Formatting.xlsx"); Assert.AreEqual(3, workbook.NumberOfSheets); Assert.AreEqual("dd/mm/yyyy", workbook.GetSheetAt(0).GetRow(1).GetCell(0).RichStringCellValue.String); Assert.IsNotNull(workbook.GetSharedStringSource()); Assert.IsNotNull(workbook.GetStylesSource()); // Write out, and check // Load up again, check all still there XSSFWorkbook wb2 = (XSSFWorkbook)XSSFTestDataSamples.WriteOutAndReadBack(workbook); Assert.AreEqual(3, wb2.NumberOfSheets); Assert.IsNotNull(wb2.GetSheetAt(0)); Assert.IsNotNull(wb2.GetSheetAt(1)); Assert.IsNotNull(wb2.GetSheetAt(2)); Assert.AreEqual("dd/mm/yyyy", wb2.GetSheetAt(0).GetRow(1).GetCell(0).RichStringCellValue.String); Assert.AreEqual("yyyy/mm/dd", wb2.GetSheetAt(0).GetRow(2).GetCell(0).RichStringCellValue.String); Assert.AreEqual("yyyy-mm-dd", wb2.GetSheetAt(0).GetRow(3).GetCell(0).RichStringCellValue.String); Assert.AreEqual("yy/mm/dd", wb2.GetSheetAt(0).GetRow(4).GetCell(0).RichStringCellValue.String); Assert.IsNotNull(wb2.GetSharedStringSource()); Assert.IsNotNull(wb2.GetStylesSource()); }
public void Test47278() { XSSFWorkbook wb = (XSSFWorkbook)_testDataProvider.CreateWorkbook(); XSSFSheet sheet = (XSSFSheet)wb.CreateSheet(); IRow row = sheet.CreateRow(0); SharedStringsTable sst = wb.GetSharedStringSource(); Assert.AreEqual(0, sst.Count); //case 1. cell.SetCellValue(new XSSFRichTextString((String)null)); ICell cell_0 = row.CreateCell(0); XSSFRichTextString str = new XSSFRichTextString((String)null); Assert.IsNull(str.String); cell_0.SetCellValue(str); Assert.AreEqual(0, sst.Count); Assert.AreEqual(CellType.Blank, cell_0.CellType); //case 2. cell.SetCellValue((String)null); ICell cell_1 = row.CreateCell(1); cell_1.SetCellValue((String)null); Assert.AreEqual(0, sst.Count); Assert.AreEqual(CellType.Blank, cell_1.CellType); }
public void Existing() { XSSFWorkbook workbook = XSSFTestDataSamples.OpenSampleWorkbook("Formatting.xlsx"); Assert.IsNotNull(workbook.GetSharedStringSource()); Assert.IsNotNull(workbook.GetStylesSource()); // And check a few low level bits too OPCPackage pkg = OPCPackage.Open(HSSFTestDataSamples.OpenSampleFileStream("Formatting.xlsx")); PackagePart wbPart = pkg.GetPart(PackagingUriHelper.CreatePartName("/xl/workbook.xml")); // Links to the three sheets, shared, styles and themes Assert.IsTrue(wbPart.HasRelationships); Assert.AreEqual(6, wbPart.Relationships.Size); pkg.Close(); }
public void TestReadWrite() { XSSFWorkbook wb = XSSFTestDataSamples.OpenSampleWorkbook("sample.xlsx"); SharedStringsTable sst1 = wb.GetSharedStringSource(); //Serialize, read back and compare with the original SharedStringsTable sst2 = ((XSSFWorkbook)XSSFTestDataSamples.WriteOutAndReadBack(wb)).GetSharedStringSource(); Assert.AreEqual(sst1.GetCount(), sst2.GetCount()); Assert.AreEqual(sst1.GetUniqueCount(), sst2.GetUniqueCount()); List <CT_Rst> items1 = sst1.GetItems(); List <CT_Rst> items2 = sst2.GetItems(); Assert.AreEqual(items1.Count, items2.Count); for (int i = 0; i < items1.Count; i++) { CT_Rst st1 = items1[i]; CT_Rst st2 = items2[i]; Assert.AreEqual(st1.ToString(), st2.ToString()); } }
/// <summary> /// Currently only supports writing not reading. E.g. the number of rows returned from a worksheet will be wrong etc. /// </summary> /// <param name="workbook"></param> /// <param name="rowAccessWindowSize"></param> /// <param name="compressTmpFiles"></param> /// <param name="useSharedStringsTable"></param> public SXSSFWorkbook(XSSFWorkbook workbook, int rowAccessWindowSize, bool compressTmpFiles, bool useSharedStringsTable) { RandomAccessWindowSize = rowAccessWindowSize; _compressTmpFiles = compressTmpFiles; if (workbook == null) { XssfWorkbook = new XSSFWorkbook(); _sharedStringSource = useSharedStringsTable ? XssfWorkbook.GetSharedStringSource() : null; } else { XssfWorkbook = workbook; _sharedStringSource = useSharedStringsTable ? XssfWorkbook.GetSharedStringSource() : null; var numberOfSheets = XssfWorkbook.NumberOfSheets; for (int i = 0; i < numberOfSheets; i++) { XSSFSheet sheet = (XSSFSheet)XssfWorkbook.GetSheetAt(i); CreateAndRegisterSXSSFSheet(sheet); } } }
public void SaveLoadNew() { XSSFWorkbook workbook = new XSSFWorkbook(); //check that the default date system is Set to 1900 CT_WorkbookPr pr = workbook.GetCTWorkbook().workbookPr; Assert.IsNotNull(pr); Assert.IsTrue(pr.IsSetDate1904()); Assert.IsFalse(pr.date1904, "XSSF must use the 1900 date system"); ISheet sheet1 = workbook.CreateSheet("sheet1"); ISheet sheet2 = workbook.CreateSheet("sheet2"); workbook.CreateSheet("sheet3"); IRichTextString rts = workbook.GetCreationHelper().CreateRichTextString("hello world"); sheet1.CreateRow(0).CreateCell((short)0).SetCellValue(1.2); sheet1.CreateRow(1).CreateCell((short)0).SetCellValue(rts); sheet2.CreateRow(0); Assert.AreEqual(0, workbook.GetSheetAt(0).FirstRowNum); Assert.AreEqual(1, workbook.GetSheetAt(0).LastRowNum); Assert.AreEqual(0, workbook.GetSheetAt(1).FirstRowNum); Assert.AreEqual(0, workbook.GetSheetAt(1).LastRowNum); Assert.AreEqual(0, workbook.GetSheetAt(2).FirstRowNum); Assert.AreEqual(0, workbook.GetSheetAt(2).LastRowNum); FileInfo file = TempFile.CreateTempFile("poi-", ".xlsx"); Stream out1 = File.OpenWrite(file.Name); workbook.Write(out1); out1.Close(); // Check the namespace Contains what we'd expect it to OPCPackage pkg = OPCPackage.Open(file.ToString()); PackagePart wbRelPart = pkg.GetPart(PackagingUriHelper.CreatePartName("/xl/_rels/workbook.xml.rels")); Assert.IsNotNull(wbRelPart); Assert.IsTrue(wbRelPart.IsRelationshipPart); Assert.AreEqual(ContentTypes.RELATIONSHIPS_PART, wbRelPart.ContentType); PackagePart wbPart = pkg.GetPart(PackagingUriHelper.CreatePartName("/xl/workbook.xml")); // Links to the three sheets, shared strings and styles Assert.IsTrue(wbPart.HasRelationships); Assert.AreEqual(5, wbPart.Relationships.Size); // Load back the XSSFWorkbook workbook = new XSSFWorkbook(pkg); Assert.AreEqual(3, workbook.NumberOfSheets); Assert.IsNotNull(workbook.GetSheetAt(0)); Assert.IsNotNull(workbook.GetSheetAt(1)); Assert.IsNotNull(workbook.GetSheetAt(2)); Assert.IsNotNull(workbook.GetSharedStringSource()); Assert.IsNotNull(workbook.GetStylesSource()); Assert.AreEqual(0, workbook.GetSheetAt(0).FirstRowNum); Assert.AreEqual(1, workbook.GetSheetAt(0).LastRowNum); Assert.AreEqual(0, workbook.GetSheetAt(1).FirstRowNum); Assert.AreEqual(0, workbook.GetSheetAt(1).LastRowNum); Assert.AreEqual(0, workbook.GetSheetAt(2).FirstRowNum); Assert.AreEqual(0, workbook.GetSheetAt(2).LastRowNum); sheet1 = workbook.GetSheetAt(0); Assert.AreEqual(1.2, sheet1.GetRow(0).GetCell(0).NumericCellValue, 0.0001); Assert.AreEqual("hello world", sheet1.GetRow(1).GetCell(0).RichStringCellValue.String); pkg.Close(); }