Ejemplo n.º 1
0
        public void TestZipBombNotTriggeredOnUselessContent()
        {
            SXSSFWorkbook swb = new SXSSFWorkbook(null, 1, true, true);
            SXSSFSheet    s   = swb.CreateSheet() as SXSSFSheet;

            char[] useless = new char[32767];
            Arrays.Fill(useless, ' ');

            for (int row = 0; row < 1; row++)
            {
                IRow r = s.CreateRow(row);
                for (int col = 0; col < 10; col++)
                {
                    char[] prefix = HexDump.ToHex(row * 1000 + col).ToCharArray();
                    Arrays.Fill(useless, 0, 10, ' ');
                    Array.Copy(prefix, 0, useless, 0, prefix.Length);
                    String ul = new String(useless);
                    r.CreateCell(col, CellType.String).SetCellValue(ul);
                    ul = null;
                }
            }

            ByteArrayOutputStream bos = new ByteArrayOutputStream();

            swb.Write(bos);
            swb.Dispose();
            swb.Close();
        }
Ejemplo n.º 2
0
        public void CreateFromReadOnlyWorkbook()
        {
            FileInfo      input = XSSFTestDataSamples.GetSampleFile("sample.xlsx");
            OPCPackage    pkg   = OPCPackage.Open(input, PackageAccess.READ);
            XSSFWorkbook  xssf  = new XSSFWorkbook(pkg);
            SXSSFWorkbook wb    = new SXSSFWorkbook(xssf, 2);

            String sheetName = "Test SXSSF";
            ISheet s         = wb.CreateSheet(sheetName);

            for (int i = 0; i < 10; i++)
            {
                IRow r = s.CreateRow(i);
                r.CreateCell(0).SetCellValue(true);
                r.CreateCell(1).SetCellValue(2.4);
                r.CreateCell(2).SetCellValue("Test Row " + i);
            }
            Assert.AreEqual(10, s.LastRowNum);

            ByteArrayOutputStream bos = new ByteArrayOutputStream();

            wb.Write(bos);
            wb.Dispose();
            wb.Close();

            xssf = new XSSFWorkbook(new ByteArrayInputStream(bos.ToByteArray()));
            s    = xssf.GetSheet(sheetName);
            Assert.AreEqual(10, s.LastRowNum);
            Assert.AreEqual(true, s.GetRow(0).GetCell(0).BooleanCellValue);
            Assert.AreEqual("Test Row 9", s.GetRow(9).GetCell(2).StringCellValue);
        }
Ejemplo n.º 3
0
        public void TestTemplateFile()
        {
            XSSFWorkbook  workBook          = XSSFTestDataSamples.OpenSampleWorkbook("sample.xlsx");
            SXSSFWorkbook streamingWorkBook = new SXSSFWorkbook(workBook, 10);
            ISheet        sheet             = streamingWorkBook.GetSheet("Sheet1");

            for (int rowNum = 10; rowNum < 1000000; rowNum++)
            {
                IRow row = sheet.CreateRow(rowNum);
                for (int cellNum = 0; cellNum < 700; cellNum++)
                {
                    ICell cell = row.CreateCell(cellNum);
                    cell.SetCellValue("somEvalue");
                }

                if (rowNum % 100 == 0)
                {
                    Console.Write(".");
                    if (rowNum % 10000 == 0)
                    {
                        Console.WriteLine(rowNum);
                    }
                }
            }

            FileStream fos = new FileStream("C:\\temp\\streaming.xlsx", FileMode.Create, FileAccess.ReadWrite);

            streamingWorkBook.Write(fos);
            fos.Close();

            streamingWorkBook.Close();
            workBook.Close();
        }