上传页面<FORM name="import" METHOD="POST" ACTION="do_import1.jsp"
ENCTYPE="multipart/form-data" onsubmit="return isnull()">
<!-- <input type="hidden" name="TEST" value="good"> -->
  <table width="75%" border="1" align="center">
    <tr> 
      <td><div align="center">1、 
          <input type="file" name="file1" size="30">
        </div></td>
    </tr>
    <tr> 
      <td><div align="center">
          <input type="submit" name="Submit" value="导入">
        </div></td>
    </tr>
  </table>
</FORM>上传处理页面InputStream is = request.getInputStream();   
jxl.Workbook wb = Workbook.getWorkbook(is);jxl.Workbook wb = Workbook.getWorkbook(is);报错 InputStream is = new FileInputStream(sourcefile); 
 jxl.Workbook rwb = Workbook.getWorkbook(is);

解决方案 »

  1.   

    //解析excel.xls数据
    private List importMessage(File f) throws Exception {
    InputStream inStream = new FileInputStream(f);
    FileInputStream saveInstream = null;
    Workbook book = null;
    List<List<String>> list = new ArrayList<List<String>>();
    WorkbookSettings workbookSettings = new WorkbookSettings();
            workbookSettings.setEncoding("ISO-8859-1");
    try {
    saveInstream = new FileInputStream(f);
    book = Workbook.getWorkbook(saveInstream,workbookSettings);
    Sheet firstSheet = book.getSheet(0);
    int rows = firstSheet.getRows();
    int cols = firstSheet.getColumns();
    for (int i = 1; i < rows; i++) {
    List<String> m = new ArrayList<String>();
    for (int k = 0; k < cols; k++) {
    String cell = firstSheet.getCell(k, i).getContents();
    cell = cell.replaceAll(" ", "");
    m.add(cell);
    }
    list.add(m);
    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    if (book != null)
    book.close();
    if (inStream != null)
    inStream.close();
    if (saveInstream != null)
    saveInstream.close();
    }
    return list;
    }
    // 导入备件信息
    public String importInfo(File f,String iType,TSparesOut sparesOut) {
    String msg = "";
    try {
    List<List<String>> list = this.importMessage(f);
    msg = this.createSQL(list,iType,sparesOut);//保存
    } catch (Exception e) {
    e.printStackTrace();
    }
    return msg;
    }希望对你有用
      

  2.   

    看类型File  你不是要导入吗
      

  3.   


    你从页面submit后 在request里面可以得到这个file 对象
      

  4.   

    因为ENCTYPE="multipart/form-data"
    所以request.getParameter("file")为NULL就算去掉ENCTYPE="multipart/form-data"  
    request.getParameter("file")为文件名 而不是文件路径
      

  5.   

    String fileName = uploaddata.getFileName();
    String fileType = fileName.substring(fileName.lastIndexOf(".")+1, fileName.length());

    Sheet sheet = null;

    if(fileType.toLowerCase().equals("xlsx")){
    wb =new XSSFWorkbook(uploaddata.getInputStream());
    sheet = wb.getSheetAt(0);
    }else{
    POIFSFileSystem fs = new POIFSFileSystem(uploaddata.getInputStream());
    wb = new HSSFWorkbook(fs);
    sheet = wb.getSheetAt(0);
    }
    int rowNum = sheet.getLastRowNum();
    Row titlerow = sheet.getRow(0);
    this.dataLengthrow = sheet.getRow(2);
    // 正文内容应该从第四行开始,第一行为表头的标题
    for (int i = 3; i <= rowNum; i++) {
                          //解析
    }
      

  6.   

    思路有 就是细节不知道 
    如果使用request.getInputStream();  怎么取不到输入流?如果使用InputStream inStream = new FileInputStream(f);如何从<input type="file" />取到文件的绝对路径f的值对不起,我是菜鸟
      

  7.   

    请问你使用的是什么组件poi?
      

  8.   

    jxl.Workbook wb = Workbook.getWorkbook(文件名);、
    我有关于jxl这个包的API··要的话联系我··
      

  9.   

    但是我现在的问题是
    得到工作簿有2种方式
    1.jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));  
    sourcefile为文件的绝对路径  问题1:文件的绝对路径怎么得到2.jxl.Workbook wb = Workbook.getWorkbook(is);
    问题2:如何得到数据流
    实践证明InputStream is = request.getInputStream();   不行
    InputStream is = new FileInputStream(sourcefile);  这个又要解决怎么得到sourcefile
      

  10.   

    public void getSxh(){
    List list = new ArrayList();
    int gnum=0;
    int snum=0;
    int bnum=0;
    for(int i=101;i<1000;i++){
      bnum = i/100;
      snum = i%100/10;
      gnum = i%100%10;
      if(gnum*gnum*gnum + snum*snum*snum + bnum*bnum *bnum==i){
      list.add(i);
      }  
    }
       Iterator it = list.iterator();
       while(it.hasNext()){
      System.out.println(it.next());
       }
    }
      

  11.   

    what do you want to  do ?
      

  12.   

    我猜想InputStream is = request.getInputStream(); 读取的is不能放在jxl.Workbook wb = Workbook.getWorkbook(is);jxl.Workbook 只能获取文件输入流InputStream is = new FileInputStream(sourcefile);  
      

  13.   

    实在没办法 我只能用smartupload的getFilePathName()获取路径了但是又有问题了  我擦 IE6可以得到全路径,在火狐下getFilePathName()只能得到文件名!!
    火狐的form只提交了文件名 跪求得到表单file标签的上传文件的绝对路径!!!!!!!!
      

  14.   

    ServletInputStream   is   =   request.getInputStream();   
     Workbook   workbook   =   Workbook.getWorkbook(is); 
    这样肯定错啊。
    我记着有这么一段说明:  when   creating   a   spreadsheet   from   a   ServletInputStream  you   must   remove   the   HTTP   header   information   before   creating   the   Workbook   object所以要选把is的流的header 信息去掉。
    我是直接去掉前四行内容