Excel无法隐藏列

excel无法隐藏列.zip (33.8 KB)
代码:

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,

您的问题是由于默认情况下,当您执行自动调整列操作时,它将显示隐藏的列。 根据您的要求,您需要设置 AutoFitterOptions 以设置忽略列的隐藏数据。 查看更新后的代码段,在我测试时可以正常工作:
例如
示例代码:

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

        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);

请尝试一下上面的代码段,它会按预期工作。