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);
请尝试一下上面的代码段,它会按预期工作。