jin.ye 发表于 2023-9-12 16:48:01

工作簿之间复制工作表文件异常[]

本帖最后由 Lynn.Dou 于 2024-1-24 17:46 编辑

产品:GcExcel
版本:v6.2.1
问题编号:DOCXLS-8901
LastReview:2023/12/12
该问题已经在V6.2.5版本修复。

public static void main(String[] args) {
    String path1 = "L:\\test\\test.xlsx";
    String path2 = "L:\\test\\货币资金.xlsx";
    FileOutputStream fos = null;
    try {
      Workbook wk = new Workbook();
                wk.open(path1);
      IWorksheets iWorksheets = wk.getWorksheets();
      int count = iWorksheets.getCount();
      Workbook wk1 = new Workbook();
      wk1.open(path2);
      IWorksheets iWorksheets1 = wk1.getWorksheets();
      IWorksheet copySheet = iWorksheets1.get(0).copyAfter(iWorksheets.get(count - 1));
      copySheet.setName("copyName");
      fos = new FileOutputStream(path1);
      wk.save(fos);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (null != fos) {
            try {
                fos.close();
            } catch (Exception var2) {
            }
      }
    }
}
将文件【货币资金.xlsx】中的sheet复制到【test.xlsx】中,打开【test.xlsx】异常,怎么做才能不会出现这个异常

Joestar.Xu 发表于 2023-9-12 17:49:06

问题收到,这边复现一下,后续有进展我会在本帖中回复您。

Joestar.Xu 发表于 2023-9-13 15:51:59

您好,该问题是由自定义视图导致的,请参考以下临时解决方案的代码:

      String path1 = GetPath("test.xlsx");
      String path2 = GetPath("货币资金.xlsx");   
      FileOutputStream fos = null;
      try {
            Workbook wk = new Workbook();
            wk.open(path1);
            IWorksheets targetSheets = wk.getWorksheets();
            int count = targetSheets.getCount();
            Workbook wk1 = new Workbook();
            wk1.open(path2);
            IWorksheets sourceSheets = wk1.getWorksheets();
            wk1.getCustomViews().get("李海 - 个人视图").delete();
            wk1.getCustomViews().get("ve - 个人视图").delete();
            wk1.getCustomViews().get("Administrator - 个人视图").delete();
            wk1.getCustomViews().get("饶海兵 - 个人视图").delete();
            IWorksheet copySheet = sourceSheets.get(0).copyAfter(targetSheets.get(count - 1));
            copySheet.setName("copyName");
            fos = new FileOutputStream(res);
            wk.save(fos);
      } catch (Exception e) {
            e.printStackTrace();
      } finally {
            if (null != fos) {
                try {
                  fos.close();
                } catch (Exception var2) {
                }
            }
      }

jin.ye 发表于 2023-9-14 09:03:09

Joestar.Xu 发表于 2023-9-13 15:51
您好,该问题是由自定义视图导致的,请参考以下临时解决方案的代码:

      String path1 = GetPath(" ...

自定义视图在Excel中怎么显示的

Joestar.Xu 发表于 2023-9-14 12:10:27

没太明白您的问题,您是想问自定义视图在Excel中如何查看吗?如果是的话,可以参考下图:



如果不是,请您再详细描述一下您的问题。

jin.ye 发表于 2023-9-14 13:29:16

Joestar.Xu 发表于 2023-9-14 12:10
没太明白您的问题,您是想问自定义视图在Excel中如何查看吗?如果是的话,可以参考下图:




就是这个

另外,后续会解决自定义视图复制sheet导致文件损坏的问题吗

Joestar.Xu 发表于 2023-9-14 13:36:42

jin.ye 发表于 2023-9-14 13:29
就是这个

另外,后续会解决自定义视图复制sheet导致文件损坏的问题吗

会的,等后续修复完毕,我会在本帖中回复您。

Joestar.Xu 发表于 2023-11-24 14:24:24

您好,该问题已在6.2.5版本中修复,您可以升级后再测试一下。
页: [1]
查看完整版本: 工作簿之间复制工作表文件异常[]