我写了一段JXL读EXCEL再写入数据库的程序.在服务器端可以读数据,但是在客户段读就提示系统找不到指定的文件。
问如何才能读客户端机器上的文件
   public void ExcelInfo(String url,String userid,String rolenum,String cmanagerour) throws BiffException, IOException {
        String path = url;//Excel文件URL
        InputStream is = new FileInputStream (path);//写入到FileInputStream
        Workbook wb = Workbook.getWorkbook (is); //得到工作薄
        Sheet st = wb.getSheet (0);//得到工作薄中的第一个工作表        String companyname;//客户名
        String linkmanname;//联系人名
     String ctaxnum;
     String ccredit;
        DealString ds = new DealString();
        int RightRows = ds.getRightRows(st);
        for (int i = 1; i < RightRows; i++) {
            Cell[] cell = st.getRow (i);//得到工作表的第一个单元格,即A1
           
            if(cell[0].getType()==CellType.EMPTY){
                companyname = "";
            }else{
            companyname = cell[0].getContents ();     }
            if(cell[1].getType()==CellType.EMPTY){
                linkmanname = "";
            }else{
            linkmanname = cell[1].getContents ();  }
            if(cell[2].getType()==CellType.EMPTY){
                linkmandepartment = "";
            }else{
            linkmandepartment = cell[2].getContents ();}
            if(cell[3].getType()==CellType.EMPTY){
                linkmanjob = "";
            }else{
            linkmanjob = cell[3].getContents ();}
            }else{
         ccredit = cell[37].getContents ();}
         GetExcelAction ace = new GetExcelAction();
         ace.addCustomerExcel(companyname,getaddress, ctel,cweb, 
            cfax,cothertel, employees,cemail, leadsource,cotheremail, rating, 
            cgrade,cownership,  cindustry, annualrevenue, accounttype,
            cnexttime, ccreattime,  paycountry,payprovince,  paycity,
            payaddress,payzip,  getcountry, getprovince,  getcity,
            getzip, cbank,  caccount,cpaytype,  cbname, ctaxnum, ccredit, cmanagerour, rolenum, userid);
         ace.addLinkmanExcel(companyname,linkmanname,linkmandepartment, linkmanjob,linkmanfone, linkmancell, userid,cmanagerour);
        }
        wb.close ();//关闭工作薄
        is.close ();//关闭输入流
    }
   由于限制每个帖子的字数,关于添加进数据库的字段我省去很多

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Cupid1945】截止到2008-07-25 11:29:31的历史汇总数据(不包括此帖):
    发帖的总数量:5                        发帖的总分数:90                       每贴平均分数:18                       
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:4                        结贴的总分数:70                       
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:80.00 %               结分的百分比:77.78 %                  
    无满意结贴率:25.00 %               无满意结分率:28.57 %                  
    楼主加油
      

  2.   

    服务端,客户端,你是C/S的还是B/S的而且貌似讲的不太清楚,麻烦说清晰点
      

  3.   

    用的是JSP.整个技术框架是STRUTS+HIBERNATE服务器是存放程序的,如果我要上传的文件放在服务器上通过浏览器的"采用类似于上传的形式"读取并写入数据库是OK的.但是在除服务器以外的机器上.(比如如果服务器是192.168.32.1 其他机器是192.168.32.65)点击浏览器访问,也是"采用类似于上传的形式"将提示"系统找不到指定的文件。"
    我知道和 InputStream is = new FileInputStream (path);//写入到FileInputStream 有关.
    因为在客户端选择的文件比如是"12.xls"当程序运行到InputStream is = new FileInputStream (path);//的时候,PATH还在寻找服务器上的12.xls这样肯定是找不到的
    所以希望有操作过JXL的朋友告知,如果是客户段访问如何读取文件的数据流
      

  4.   

    其实抽象出一个最根本的问题看下面一段代码
     <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.io.*,java.lang.*"%>
    <html>
    <head>
    <title>读取所有的文件数据</title>
    </head>
    <body>
    <%
    String path=request.getRealPath(".");
    FileReader fr=new FileReader(path + "\\ReadData.txt");//关键在于读取过程中,要判断所读取的字符是否已经到了文件的末尾,并且这个字符是不是文件中的断行符,即判断该字符值是否为13。
    int c=fr.read();//从文件中读取一个字符
    //判断是否已读到文件结尾
    while(c!=-1){
    out.print((char)c);//输出读到的数据
    c=fr.read();//从文件中继续读取数据
    if(c==13){//判断是否为断行字符
    out.print("<br>");//输出分行标签
    fr.skip(1);//略过一个字符
    //c=fr.read();//读取一个字符
    }
    }
    fr.close();
    %>
    </body>
    </html>
    这段代码可以测试的
    大家运行的结果是如果你把ReadData.txt放在客户端的任何一台计算机上,如何读出里面的内容.现在这段代码只能将ReadData.txt放在服务器的项目路径下才能读.
      

  5.   

    楼主的思路有问题你把ReadData.txt放在客户端的任何一台计算机上,你又没有共享给服务器,你让服务器怎么读正确的做法是客户端把文件上传到服务器,然后服务器读取
      

  6.   

    chun_sun 说的很正确
    后来我的解决办法是先 将要读的文件上传的服务器,再读,读完后删除.谢谢大家的关注.