Aspose.Words for Java excel转html,有excel转换后几列列宽被拉宽

excel转换后几列列宽被拉宽.zip (277.1 KB)

代码:
Workbook workbook = new Workbook(sourceFileName);

WorksheetCollection sheetCollection = workbook.getWorksheets();
int sheetCont = sheetCollection.getCount();
for(int i=0;i<sheetCont;i++){
sheetCollection.get(i).autoFitColumns();
}

HtmlSaveOptions options = new HtmlSaveOptions();

options.setExportDocumentProperties(false);
options.setExportWorkbookProperties(false);
options.setExportWorksheetProperties(false);
options.setExportSimilarBorderStyle(true);
options.setExportImagesAsBase64(false);
options.setExcludeUnusedStyles(true);
options.setExportHiddenWorksheet(false);
options.setWidthScalable(false);
options.setPresentationPreference(true);

options.setHtmlCrossStringType(HtmlCrossType.CROSS_HIDE_RIGHT);
workbook.save(targetFileName, options);

@xiangma,

我确实评估了您的问题。 我发现您正在自动调整每张工作表中的所有列。 这就是为什么您要为某些工作表获取那些扩展/加宽的列的原因。 如果您在 MS Excel 中为工作表手动执行自动调整操作,您还将获得那些宽度增加的加宽列。 所以,这不是 API 的问题。 我不建议您在每个工作表中自动调整列,因此您应该注释以下代码段以解决问题:

WorksheetCollection sheetCollection = workbook.getWorksheets();
int sheetCont = sheetCollection.getCount();
for(int i=0;i<sheetCont;i++){
sheetCollection.get(i).autoFitColumns();
}

(如果需要,您可以仅为特定工作表中的特定列而不是所有列执行自动调整列)。

此外,您可以评估和更改代码段中的行以适合单元格交叉字符串类型。
options.setHtmlCrossStringType(HtmlCrossType.CROSS_HIDE_RIGHT);