Issue Description :
We Create an Excel File Manually with 218X1000 Cells say test_2.xls
And then generate the same data via POI HSSF to output another file say 
test_2_poi.xls
The file size
test_2.xls : 1335 KB
test_2_poi.xls : 3887 KB (is more than double size of test_2.xls)

Environment : 
OS : Linux Fedora 3
Web Server : Apache 1.3
PHP Version : 4.3.12-dev
PHP Java Bridge : 2.0.7
MYSQL Version : 5.0.9
JAVA : JDK_1.6.0_17
POI Version : poi-3.5-FINAL-20090928

Duplicate Procedure :
1.      Open MS Excel (My Version is MS Excel 2007) , Generate Random Number 
data with 218X1000 Cells , each cell is set to "RANDBETWEEN(1,10000000)"
2.      Copy All Data and Paste these data (worksheet1) to another worksheet2 
with value (not formula)
3.      Delete other work sheet and preserve this worksheet2 only
4.      Save this file for Excel 97~2003 Version say test_2.xls , and Save 
another copy for csv format say test_2.csv
5.      Upload test_2.csv to Web Server root
6.      Run PHP Script(Please see the code below) to generate excel file say 
test_2_poi.xls
 
 Code :
 <?php

        java_require("/usr/local/cyril/java/poi-3.5-FINAL-20090928.jar");  
//directory of POI Package
   $workbook = new java("org.apache.poi.hssf.usermodel.HSSFWorkbook");
        $sheet = $workbook->createSheet("Test");
        $data_array = array();
        $fh = fopen("test_2.csv","r");
        while($tmp_data=fgetcsv($fh,100000000,","))
        {
                array_push($data_array,$tmp_data);
        }
        
        for($i=0;$i<count($data_array);$i++)
        {
                $row = $sheet->createRow($i);
                for($j=0;$j<count($data_array[$i]);$j++)
                {
                        $cell = $row->createCell($j);
                        $cell->setCellValue((float)$data_array[$i][$j]);
                }
        }
        $memoryStream = new 
Java('java.io.FileOutputStream','/usr/local/apache/htdocs/test2_poi.xls'); 
//Save to Web Server Root
        $workbook->write($memoryStream);
   
 ?php>

We Want to Know if there is any solution to avoid the doubled file size issue 
which is generated from POI HSSF ???


Reply via email to