现在有个需求,定时更新excel文件。这个通过poi就能实现。
问题是要求这个excel文件一直是运行的状态,不能关闭。
我用Runtime.getRuntime().exec("cmd.exe /c start + path)
方式将excel运行后,再用poi操作excel更新数据,就会提示文件已经被其它程序占用。请问各位大侠,java有其它运行excel的函数么? 能不是设置共享或者读写的方法运行excel?
或者二cmd命令有相关设置?

解决方案 »

  1.   

    同一个excel文件,更新后,复制A生成B,运行B,如果有更新,则更新A,
    然后再次复制A生成B(覆盖之前的)B,运行B。
      

  2.   

    删除会有权限限制不过更新可以的
    这样也就没有神马excle一定要在运行中了 
      

  3.   

    ODBC连接excle文件 这个时候excle就是看做一个数据库
    insert into [非法用户$]
    用ODBC连接 
      

  4.   

    控制面板里》管理工具》odbc》用户DNS》添加》选择excle驱动》选中excle所在的目录地方 这样就可以用
    select insert update操作excle了
      

  5.   

    POI读取的excel未必要运行着的
    正解
      

  6.   

    一般都是 
    sqlconnection
    sqlcommond
    mysqlconnection的
    也可以用odbcconnecton的odbc可以连接excle txt的操作public static  string str = @"DSN=usbdbtwo";数据源名字 
    public static    OdbcConnection con = new OdbcConnection(str); //新建连接对象
    你可以测试下con.open是否能打开 应该没问题的 
    如果可以那就插入就可以 insert into insert into [非法用户$] values(……)
    因为每次插入到excel中是追加的 所以呢你可以用
    FileInfo feinfo = new FileInfo("d:/cronjob/xxx.xls");这个是个空的xecle
    feinfo.CopyTo("你插入的excle目录.xls", true);
    如上就会每次从d:/cronjob/xxx.xls把你的excle替换掉 这样就不需要删除了 而且删除有权限问题