Aspose.word转换为excel分页的问题

你好,我收到了你们更新通知,目前确实是拆分以后会变为多个工作表,请问是否有设置参数可以控制是否分页的功能?比如我不需要拆分到多个sheet;而是单一的将多页word拆分到同一个sheet中呢?还有一个问题,目前版本中拆分是根据分页符来的,如果分页不是依靠分页符的,比如通过设置段落磅值、段前段后或者粗暴的使用回车进行分页,这种情况aspose.words不会正确的拆分页面到各自sheet中。

@jidesheng
感谢您报告此问题。 我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:

Issue ID(s): WORDSNET-27043

如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务

@jidesheng 要将多页文档保存为单页,可以使用以下代码:

XlsxSaveOptions saveOptions = new XlsxSaveOptions();
saveOptions.SectionMode = XlsxSectionMode.SingleWorksheet;

如果要将多页文档逐页转换为 xlsx 表,则需要使用此代码:

Document doc = new Document("test2.docx");

Document destination = (Document)doc.Clone(false);
for (int i = 0; i < doc.PageCount; i++)
{
    Document pageDoc = doc.ExtractPages(i, 1);
    foreach (Node section in pageDoc.Sections)
        destination.AppendChild(destination.ImportNode(section, true));
}

// Save the document.
destination.Save("multisheet.xlsx");

上面我创建了任务,通过保存选项来管理该选项。

@jidesheng 在分析问题的过程中,我们发现了使用以下代码进行页面抽取时出现的问题:

Document doc = new Document("input.docx");

for (int i = 0; i < doc.getPageCount(); i++)
    doc.extractPages(i, 1).save(getArtifactsDir() + "output_" + i + ".docx");

下面是一份有问题的文档,其中包含页码和双页脚图像。你说的制作更多图片是指这个吗?

output_8.docx (27.0 KB)

这个没事了,我当时其实就是想问两个问题:
1、你们写的extractpages导出到单个excel和直接调用save方法输出的是不是一样的;这个问题已经解决了
2、当时我以为转换过程中word实际是文字组成的页面变为图片了,后来我经过排查发现,我自己以为出现问题那页文档,实际本身就是一张图片

所以我现在没啥问题了,感谢/

@jidesheng 好的,感谢您提供的补充信息。

The issues you have found earlier (filed as WORDSNET-27043) have been fixed in this Aspose.Words for .NET 24.7 update also available on NuGet.

目前版本中拆分是根据分页符来的,如果分页不是依靠分页符的,比如通过设置段落磅值、段前段后或者粗暴的使用回车进行分页,这种情况aspose.words不会正确的拆分页面到各自sheet中。

请问这个问题在24.7中解决了吗,是要设置什么参数吗,测试了一下好像通过回车分页的文档还是不会拆分到单独sheet里面。

下面是测试用的文档。
files.zip (17.3 KB)

@jidesheng 在额外的分析和向您提出的问题中,您写道您解决了问题,因此我们关闭了这个无法修复的问题。我们的实现模仿了MS Word的行为。目前尚不清楚在这种情况下你真正需要什么。提供了如何将文档转换为xlsx的所有示例。如果您想按某些特定位置将输入文档拆分为XLSX工作表,我们可以建议在这些位置插入分节符,然后导出到XLSX。如果您不想按页面拆分文档,请使用:

XlsxSaveOptions saveOptions = new XlsxSaveOptions();
saveOptions.SectionMode = XlsxSectionMode.SingleWorksheet;

如上所述。

好的,我了解了。谢谢。 :smiling_face_with_three_hearts: