Aspose.Cells_for_NET 部分属性无效

Aspose.Cells_for_NET.24.5.0
环境 .Net 6.0
Visual Studio Code 控制台运行。

实际测试 Class HtmlSaveOptions 以下2个属性无效:
AddTooltipText
FormatDataIgnoreColumnWidth

相关代码:

Aspose.Cells.Workbook wb = new Aspose.Cells.Workbook(SourceDir + "\\测试用.xlsx");
HtmlSaveOptions saveOptions = new HtmlSaveOptions(SaveFormat.Html);
saveOptions.Encoding = System.Text.Encoding.UTF8;
saveOptions.ExportSimilarBorderStyle = true;
saveOptions.ExportBogusRowData = true;
saveOptions.ExcludeUnusedStyles = true;
// 【实测无效】指示在数据无法完全显示时是否添加工具提示文本。
saveOptions.AddTooltipText = true;
saveOptions.IsExportComments = true;
saveOptions.ExportCommentsType = PrintCommentsType.PrintSheetEnd;
// 【实测无效】在溢出列时是否显示单元格的整个格式数据。如果为 true,则忽略列宽,将导出单元格的整个数据。如果为 false,则导出的数据将与 Excel 相同。
saveOptions.FormatDataIgnoreColumnWidth = true;

// 保存文件。
wb.Save(DestDir + "测试用.html", saveOptions);
<a class="attachment" href="/uploads/default/94545">测试用文件.zip</a> (13.0 KB)


附件提供:
Excel文件及转换后的HTML文件。

麻烦看下问题出在哪里?也请提供修改后的代码。
测试用文件.zip (13.0 KB)

@aswinrose
通过使用样例文件和代码在最新版本v24.5上进行测试,我们可以复现问题。发现当转换文件到html格式时,HtmlSaveOptions.AddTooltipText和HtmlSaveOptions .FormatDataIgnoreColumnWidth属性无效。

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

问题单号:CELLSNET-55871

@aswinrose ,

我们已经修复了关于的AddTooltipText问题,该修复将包含在即将发布的版本 (Aspose.Cells v24.6) 中,我们计划于 2024 年 6 月上半月发布。
对于FormatDataIgnoreColumnWidth的问题,你可以使用saveOptions.HtmlCrossStringType = HtmlCrossType.Cross;来实现需要的功能。

迅捷的反馈速度令人敬佩。
测试了 HtmlCrossStringType属性,尽管它是工作的,但是效果不是预期的。
感觉,AddTooltipText 属性似乎更符合HTML特性,期待新版本的发行。

@aswinrose
感谢你的反馈。我们将进一步研究你的问题。一旦版本v24.6发布,我们将及时通知你。

@aswinrose ,

你也可以尝试使用Worksheet.AutoFitColumns(), 代码如下:

Aspose.Cells.Workbook wb = new Aspose.Cells.Workbook(SourceDir + "\\测试用.xlsx");
 wb.Worksheets[0].AutoFitColumns();
HtmlSaveOptions saveOptions = new HtmlSaveOptions(SaveFormat.Html);
...
wb.Save(DestDir + "测试用.html", saveOptions);

希望这能有所帮助。

如果工作簿Workbook有多个表Worksheets,如何修改wb.Worksheets[0].AutoFitColumns()这个代码,才能对这个工作簿所有表进行AutoFitColumns()处理?

@aswinrose
如果你想对工作簿所有Worksheet进行AutoFitColumns()操作,你需要遍历每个Worksheet,然后调用Worksheet.AutoFitColumns()方法。您可以参考以下样例代码:

Aspose.Cells.Workbook wb = new Aspose.Cells.Workbook(SourceDir + "\\测试用.xlsx");
WorksheetCollection sheets = wb.Worksheets;
foreach (Worksheet sheet in sheets)
{
    sheet.AutoFitColumns();
}

非常感谢您的回复。

刚接触 Aspose.Cells 不久,还不是很了解 各个属性,原本以为会有一个预设的参数来处理,会简洁些。现在看来,还是要 回到“传统的循环” :smiley:

实际测试了下,用于处理跨单元格的字符串,自动增加列宽,来完整显示字符串,相当于 Excel的类似功能。
1,不很精确。
2,“全局处理”,有些不需要修改的列宽也被调整了,看了下官方文档,虽然可做一些个性化设置,但面对大批量的"各种情况"的文档,无法精确命中。
3,如果一张表中仅有一个单元格的字符串很长,会导致整张表被拉伸很宽。
综合来看,还是期待 AddTooltipText 这个函数的修复。

@aswinrose,

是的,您必须循环遍历工作簿中的工作表才能应用自动调整列操作。

对于您原来的问题,请等待下周发布的新版本。希望它能解决您的问题。正如我们所说的,您可以尝试即将推出的针对 FormatDataIgnoreColumnWidth 问题的版本,您可以使用 saveOptions.HtmlCrossStringType = HtmlCrossType.Cross; 来实现所需的功能。

The issues you have found earlier (filed as CELLSNET-55871) have been fixed in this update. This message was posted using Bugs notification tool by johnson.shi

收到升级提示,抽空立即进行了测试,一些问题确实得到了修复,高效的工作令人佩服。

但是,关于 格式化数据属性 FormatDataIgnoreColumnWidth(如图所示):
Excel 软件中的显示效果:数据不显示并被替换为“#”,但是带有 完整数据提示。合理。
Aspose.Cells(FormatDataIgnoreColumnWidth = false) 以及 Excel 软件 转换到 Html后 效果一样:仅有符号“#”,看不到数据。不合理。
Aspose.Cells(FormatDataIgnoreColumnWidth = true) 转换到 Html后 效果:数据完整显示,但是强制覆盖了右侧单元格数据。不合理。

看不到数据的文件是没有意义的。所以:Excel 软件中的显示效果是合理的。希望 FormatDataIgnoreColumnWidth = true 可以实现这个效果。或者,AddTooltipText 可以作用到“格式化数据”。
pic001.png (64.9 KB)

@aswinrose
您好!感谢您的反馈,我们将进一步研究分析您的问题,并尽快给出反馈!

@aswinrose ,
通过测试我们发现格式化后的数据(替换为“#”)没有完整的数据提示。我们会考虑对HtmlSaveOptions.AddTooltipText 作用到“格式化数据”。

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

问题单号:CELLSNET-55983

@aswinrose ,

很高兴通知您,我们已经修复了你的问题(单号:CELLSNET-55983),该修复将包含在即将发布的版本 (Aspose.Cells v24.7) 中,我们计划于 2024 年7月上半月发布。

附件是测试文件和修复后的输出结果,供您参考:
output.zip (8.7 KB)

The issues you have found earlier (filed as CELLSNET-55983) have been fixed in this update. This message was posted using Bugs notification tool by johnson.shi