Search in sources :

Example 46 with DirectoryNode

use of org.apache.poi.poifs.filesystem.DirectoryNode in project poi by apache.

the class TestHSSFWorkbook method differentPOIFS.

/**
     * Tests that we can work with both {@link POIFSFileSystem}
     *  and {@link NPOIFSFileSystem}
     */
@Test
public void differentPOIFS() throws Exception {
    // Open the two filesystems
    DirectoryNode[] files = new DirectoryNode[2];
    POIFSFileSystem poifsFileSystem = new POIFSFileSystem(HSSFTestDataSamples.openSampleFileStream("Simple.xls"));
    try {
        files[0] = poifsFileSystem.getRoot();
        NPOIFSFileSystem npoifsFileSystem = new NPOIFSFileSystem(HSSFTestDataSamples.getSampleFile("Simple.xls"));
        try {
            files[1] = npoifsFileSystem.getRoot();
            // Open without preserving nodes 
            for (DirectoryNode dir : files) {
                HSSFWorkbook workbook = new HSSFWorkbook(dir, false);
                HSSFSheet sheet = workbook.getSheetAt(0);
                HSSFCell cell = sheet.getRow(0).getCell(0);
                assertEquals("replaceMe", cell.getRichStringCellValue().getString());
                workbook.close();
            }
            // Now re-check with preserving
            for (DirectoryNode dir : files) {
                HSSFWorkbook workbook = new HSSFWorkbook(dir, true);
                HSSFSheet sheet = workbook.getSheetAt(0);
                HSSFCell cell = sheet.getRow(0).getCell(0);
                assertEquals("replaceMe", cell.getRichStringCellValue().getString());
                workbook.close();
            }
        } finally {
            npoifsFileSystem.close();
        }
    } finally {
        poifsFileSystem.close();
    }
}
Also used : NPOIFSFileSystem(org.apache.poi.poifs.filesystem.NPOIFSFileSystem) OPOIFSFileSystem(org.apache.poi.poifs.filesystem.OPOIFSFileSystem) POIFSFileSystem(org.apache.poi.poifs.filesystem.POIFSFileSystem) NPOIFSFileSystem(org.apache.poi.poifs.filesystem.NPOIFSFileSystem) DirectoryNode(org.apache.poi.poifs.filesystem.DirectoryNode) Test(org.junit.Test)

Example 47 with DirectoryNode

use of org.apache.poi.poifs.filesystem.DirectoryNode in project poi by apache.

the class TestNonStandardWorkbookStreamNames method testWrite.

/**
	 * Test that when we write out, we go back to the correct case
	 */
@Test
public void testWrite() throws IOException {
    for (String file : new String[] { xlsA, xlsB }) {
        // Open the workbook, not preserving nodes
        InputStream is = HSSFTestDataSamples.openSampleFileStream(file);
        HSSFWorkbook wb = new HSSFWorkbook(is, false);
        is.close();
        // Check now it can be opened
        HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb);
        wb.close();
        DirectoryNode root = wb2.getDirectory();
        // Check that we have the new entries
        assertTrue(root.hasEntry("Workbook"));
        assertFalse(root.hasEntry("BOOK"));
        assertFalse(root.hasEntry("WORKBOOK"));
        wb2.close();
    }
}
Also used : InputStream(java.io.InputStream) DirectoryNode(org.apache.poi.poifs.filesystem.DirectoryNode) Test(org.junit.Test)

Aggregations

DirectoryNode (org.apache.poi.poifs.filesystem.DirectoryNode)47 Test (org.junit.Test)16 InputStream (java.io.InputStream)15 POIFSFileSystem (org.apache.poi.poifs.filesystem.POIFSFileSystem)13 NPOIFSFileSystem (org.apache.poi.poifs.filesystem.NPOIFSFileSystem)12 Entry (org.apache.poi.poifs.filesystem.Entry)9 ByteArrayInputStream (java.io.ByteArrayInputStream)8 ByteArrayOutputStream (java.io.ByteArrayOutputStream)8 IOException (java.io.IOException)8 OPOIFSFileSystem (org.apache.poi.poifs.filesystem.OPOIFSFileSystem)6 FileInputStream (java.io.FileInputStream)5 FileNotFoundException (java.io.FileNotFoundException)5 DocumentInputStream (org.apache.poi.poifs.filesystem.DocumentInputStream)5 HSSFWorkbook (org.apache.poi.hssf.usermodel.HSSFWorkbook)4 HWPFDocument (org.apache.poi.hwpf.HWPFDocument)4 File (java.io.File)3 ArrayList (java.util.ArrayList)3 AttachmentChunks (org.apache.poi.hsmf.datatypes.AttachmentChunks)3 DirectoryEntry (org.apache.poi.poifs.filesystem.DirectoryEntry)3 DocumentEntry (org.apache.poi.poifs.filesystem.DocumentEntry)3