第三方的包 jxl 只支持excel95、97、2000,现在我想读2003的,应该用哪个包,该如何用?急~~~

解决方案 »

  1.   

    这对我来说也是个问题,search一下吧,关键词:java excel2003
      

  2.   

    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import java.io.FileInputStream;
    public class ReadXL {
      /** Excel文件的存放位置。注意是正斜线*/
      public static String fileToBeRead="D:\\book2.xls";
      public static void main(String argv[]){ 
      try{
      // 创建对Excel工作簿文件的引用
      HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
        // 创建对工作表的引用。
        // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
        HSSFSheet sheet = workbook.getSheetAt(0);
        // 也可用getSheetAt(int index)按索引引用,
        // 在Excel文档中,第一张工作表的缺省索引是0,
        // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
        // 读取左上端单元
       System.out.print("First RowNum:"+sheet.getFirstRowNum());
        System.out.print("Last RowNum:"+sheet.getLastRowNum() );
        
        HSSFRow row = sheet.getRow(0);
        HSSFCell cell = row.getCell((short)0);
        // 输出单元内容,cell.getStringCellValue()就是取所在单元的值
        System.out.println("左上端单元是: " + cell.getStringCellValue());
        }catch(Exception e) {
        e.printStackTrace();
        System.out.println("已运行xlRead() : " + e ); 
        }
    }
    }这个很好用的,我刚用过,不过不能读特别大的数据,通常不能读的原因都是内存不够!看你计算机的性能了,你可以测试一下的!我也有写的,需要就说一声!
      

  3.   

    这个POI包是JDK自带的还是第三方的?
      

  4.   

    see from import package,it's JDK'S
      

  5.   

    /**
         * <br>导入Excel数据
         * @param       HttpServletRequest   req
         * @param       HttpServletResponse  resp
         * @param       String               szPath_file
         * @param       String               szFile_name
         * @return      void
         */
        private String ImportExcelData(HttpServletRequest _req,InputStream in ,String sz_FileName,String sz_AllFilePath,ImportProjectServletVO pVO)
        {     boolean binsert=false;
         String szReturn="";
         //
            ExcelDataExportServlet ExcelHashData =new ExcelDataExportServlet ();
            //返回所有数据
    Hashtable[] hb_data= null;
    try{
    hb_data=ExcelHashData.ExcelDataExportHash(in);
    }catch(Exception e){}
    String szStatus="";
    Hashtable[] hbTask = null;
    int iNewFlag = 3;
    //int iFlag = 0;
    try
    {
    if(hb_data==null)
    return "ERR";
    else
    {
         for(int i=3;i<hb_data.length;i++)
    {
        if(i!=3&&i!=(hb_data.length-1)&&
            !getHashtableValue(hb_data[i],"FIELD1").equals("")&&
            getHashtableValue(hb_data[i],"FIELD0").equals(""))
        {
            hbTask = new Hashtable[i-iNewFlag+3];
            hbTask[0] = new Hashtable();
            hbTask[0] = hb_data[0];
            hbTask[1] = new Hashtable();
            hbTask[1] = hb_data[1];
            hbTask[2] = new Hashtable();
            hbTask[2] = hb_data[2];
            for(int j=iNewFlag;j<i;j++)
            {
                hbTask[j-iNewFlag+3] = new Hashtable();
                hbTask[j-iNewFlag+3] = hb_data[j];
            }
            iNewFlag = i;
            ImportTaskThread ttt = 
            new ImportTaskThread(getPoolName(_req),
                hbTask,
                ClientPropertyManager.getProperty("TC_IMPORT_PATH")+szFileName,
                iFlag); 
            iFlag++;
        }
        else if(i==(hb_data.length-1))
        {
            hbTask = new Hashtable[(i+1)-iNewFlag+3];
            hbTask[0] = new Hashtable();
            hbTask[0] = hb_data[0];
            hbTask[1] = new Hashtable();
            hbTask[1] = hb_data[1];
            hbTask[2] = new Hashtable();
            hbTask[2] = hb_data[2];
            for(int j=iNewFlag;j<=i;j++)
            {
                hbTask[j-iNewFlag+3] = new Hashtable();
                hbTask[j-iNewFlag+3] = hb_data[j];
            }
            iNewFlag = i;
            ImportTaskThread ttt = 
            new ImportTaskThread(getPoolName(_req),//myDbaccess,
                hbTask,
                ClientPropertyManager.getProperty("TC_IMPORT_PATH")+szFileName,
                szuserid,
                iFlag); 
            iFlag++;
        }
    }
    }
            }
            catch( Exception eee)
    {
    }
        return szReturn;
        }     /**********************************************************************
         * @Name:  getHashtableValue
         * @funcation:  取 Hashtable内的值, 如果为空,则返回"" --- 避免返回 null
         * @param : Hashtable htSource ,String szValue
         * @return : String
         * @exception:
         * Demo:
         */
        private String  getHashtableValue( Hashtable htSource ,String szValue)
        {
            if( htSource == null )
            {
               return "";
            }
            String szGetVal = (String)htSource.get(szValue);
            if( szGetVal == null )
            {
                szGetVal ="";
            }
            else
            {
                szGetVal = szGetVal.trim() ;
            }
            return szGetVal;
        }