aspose-cells / Aspose.Cells-for-Java

Aspose.Cells for Java examples, plugins and showcases
https://products.aspose.com/cells/java
MIT License
146 stars 100 forks source link

XLSX转成XLS格式时,批注被转注释,注释全部叠在一起。 #69

Closed liyan1044120608 closed 4 months ago

liyan1044120608 commented 1 year ago

这个是xlsx格式原文件显示的:\ image

这个转成xls格式文件:\ image

源文件 新建 XLS 工作表.xls 批注.xlsx

liyan1044120608 commented 1 year ago

应该如何解决这个问题

amjad-sahi commented 1 year ago

@liyan1044120608,

我检查了您的(输入)XLSX 文件,发现其中有线程注释/注释。 当我们转换为旧的 XLS 文件格式时,它们将被转换为普通(旧样式)注释。 我猜你是在抱怨这个问题。 但是,当您在 MS Excel 中手动执行相同的操作时,您也会得到类似的结果。 所以,这似乎不是 Aspose.Cells API 的问题。

liyan1044120608 commented 1 year ago

@amjad-sahi 我的问题是线程注释被转换成普通注释,但是普通注释的位置都在同一位置上了。这让我很苦恼。

amjad-sahi commented 1 year ago

@liyan1044120608,

感谢您分享更多详细信息。

我已经能够重现这个问题。 我发现当XLSX转换为XLS格式时,线程注释被转换为普通注释,但普通注释的位置都在同一个位置或注释在一个位置对齐。

我们已经为您的问题记录了一个 ID 为“CELLSJAVA-45428”的票证。 我们将对其进行调查以尽快弄清楚。

一旦我们有更新,我们会通知您。

SimonZhaoAspose commented 1 year ago

@liyan1044120608 这好像是WPS的bug。 文件中存储的两个 批注的位置是相同的

<v:shape type="#_x0000_t202" id="_x0000_s10260" style="position:absolute;   margin-left:153pt;margin-top:8.4pt;width:100.8pt;height:60.6pt;z-index:2;   visibility:hidden" fillcolor="#ffffe1" o:insetmode="auto">
<v:shape type="#_x0000_t202" id="_x0000_s10261" style="position:absolute;   margin-left:153pt;margin-top:8.4pt;width:100.8pt;height:60.6pt;z-index:2;   visibility:hidden" fillcolor="#ffffe1" o:insetmode="auto">

我们需要研究如何忽略这位置数据。

SimonZhaoAspose commented 1 year ago

@liyan1044120608 我们用文件中的<x:Anchor>5, 15,12, 14,8, 23,18, 19</x:Anchor>数据重新生成了xls,但是似乎这个结果也有点问题。

liyan1044120608 commented 1 year ago

感谢您的调查,请问一下这个解决的怎么样了

liyan1044120608 commented 1 year ago

@liyan1044120608 我们用文件中的<x:Anchor>5, 15,12, 14,8, 23,18, 19</x:Anchor>数据重新生成了xls,但是似乎这个结果也有点问题。

感觉需要相对单元格的位置重新生成注释的位置

SimonZhaoAspose commented 1 year ago

@liyan1044120608 我们不能随意的修改用户文件中的数据, 所以不可以随便重新生成注释的位置。 这应该是WPS存储的数据有问题。 有两个临时方案: 1 用MSExcel 把文件重新存一下, 2,用Aspose.Cells 调整一下位置

          Workbook lc_WorkBook = new Workbook(dir + "default.xlsx");
      CommentCollection comments = lc_WorkBook.getWorksheets().get(0).getComments();
          for (int i = 0; i < comments.getCount() ; i++)
          {
              Comment c = comments.get(i);
              if(c.isThreadedComment())
              {
                  Shape s = c.getCommentShape();
                  s.setUpperLeftColumn(c.getColumn() + 1);
                  s.setUpperLeftRow(c.getRow() - 1);
              }
          }

          lc_WorkBook.save(dir + "dest.xls");
peytonxuaspose commented 1 year ago

@liyan1044120608

我们在Aspose.Cells for Java 23.6中修复了问题单CELLSJAVA-45428所记录的问题。

Workbook wb = new Workbook("input.xlsx");

wb.save("output.xls");

OX~_7M41BZ8SCJRZY$ _XC6

JaneYork commented 7 months ago

@amjad-sahi 我的问题是线程注释被转换成普通注释,但是普通注释的位置都在同一位置上了。这让我很苦恼。

你们都是怎么免费使用的? 不是有水印吗

johnhe998 commented 7 months ago

@JaneYork 试用版的生成文件都会包含水印信息。你需要购买License后才能去掉水印。你可以访问以下链接进行购买。 https://purchase.aspose.com/buy