解决方案 »

  1.   

    xlsx不是文本文档,文件头里会有文件大小等信息
    所以你应该先读出来,修改内容后写回去,而不是用空的文件流去直接覆盖它,那样会造成文件头里显示文件字节数为0,可是后面其实还有数据
      

  2.   

    我也遇到这个问题,后来把excel文件换成xls版本后,就没有问题了
      

  3.   


    xls是没问题,但是人家的文件就是xlsx的,不能给他将版本啊
      

  4.   

    xls文件没有文件头的信息
    所以你在txt里写点东西然后把扩展名改成xls,用excel也能打开,最多告诉你格式不符,不会告诉你文件损坏我也想这么干来着,有人说万一删完报错,没覆盖成文件不就都没了吗
    你可以先生成个扩展名为.tmp的临时文件,如果生成成功了,再把原文件删除,并修改扩展名
    或者将新文件生成到临时文件夹,使用File.Move指令将原文件替换
      

  5.   

    其实你看OFFICE自己就是这么干的,打开xlsx后会生成一个前缀名为~$的隐藏临时文件,而打开xls的时候不会生成临时文件