aspose-cells-24.9.jar SvgSaveOptions svgSaveOptions = new SvgSaveOptions();
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions();
違いを指摘するためにスクリーンショットを撮ってください。現在、図に示すように、セル B48 から U48 の背景が異なっていることがわかります。
Screenshot_svg_vs_html.jpg (128.5 KB)
次のサンプル コードを使用してシナリオ/ケースをテストし、提供された Excel ファイルから 2 つの出力 (SVG と HTML) を取得しました。
Workbook workbook = new Workbook("d:\\files\\svgとhtml\\testファイル.xlsx");
SvgSaveOptions svgSaveOptions = new SvgSaveOptions();
workbook.save("d:\\files\\svgとhtml\\outsvg.svg", svgSaveOptions);
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions();
htmlSaveOptions.setPresentationPreference(true);
workbook.save("d:\\files\\svgとhtml\\outhtml.html",htmlSaveOptions);
その後、テンプレート Excel ファイルを手動で MS Excel で開き、「Web ページ」(HTML) として保存し、特定のワークシートの出力 HTML ファイルを取得しました。
出力 HTML と SVG ファイルを含むすべての zip アーカイブを添付してください。
files1.zip (23.6 KB)
次に、ファイルを比較します。SVG は問題ないように見えます。HTML については、はい、データと背景パターンがクリップ/欠落しています。しかし、Aspose.Cells for Java による出力 HTML と MS Excel による出力 HTML を比較すると、どちらも同じで、Aspose.Cells によって生成された HTML の方が少し優れています。
つまり、MS Excel でも適切にレンダリングされず、Aspose.Cells は MS Excel のレンダリングされた HTML ファイルと同じように動作します。
スクリーンショット 2024-12-13 103313.png (59.9 KB)
上記で記載した内容が承知しました。
ただ、リクエストとしては、生成したhtmlのレイアウトをsvgと一致するべきであり、
そこは何とかできませんか。
svg と html への保存についてもう少し説明します。
svg は画像で、svg への保存は Excel の印刷ビューを計算するレンダリング用です。Png 画像への保存と同じです。
html への保存では、保存した html を Excel に読み込む要件を考慮する必要があります。Excel で保存した html と一致する必要があります。
そのため、svg への保存と html への保存の結果は異なる場合があります。
@jishangyang
社内の問題追跡システムで新しいチケットを開き、無料サポート ポリシー に記載されている条件に従って修正を提供します。
問題 ID:
CELLSJAVA-46202 - ファイルを HTML に保存する際のテキストの配置が正しくない
CELLSJAVA-46203 - ファイルを HTML に保存する際の余分な境界線が追加される
CELLSJAVA-46204 - ファイルを HTML に保存する際のパターンが欠落する
優先サポートが必要な場合は、有料サポート サービス もご利用になり、有料サポート管理チームに直接アクセスすることもできます。
問題が解決しましたのでお知らせいたします。修正は、2025 年 1 月前半にリリース予定の次期リリース (Aspose.Cells v25.1) に含まれます。次のバージョンがリリースされたらお知らせします。
添付ファイルは修正後の結果です。
output.zip (6.0 KB)
The issues you have found earlier (filed as CELLSJAVA-46204,CELLSJAVA-46203,CELLSJAVA-46202) have been fixed in Aspose.Cells for Java 25.1.
ExcelToHtml.zip (395.6 KB)
我用 Aspose.Cells for Java 25.1版尝试了,有些问题确认已经解决,但是还有几个问题还存在,麻烦帮忙解决一下,已经都放在压缩包中了。
@jishangyang
通过使用样例文件和代码在最新版本v25.1上进行测试,我们可以复现问题。当保存文件到html后,发现了文本和边框之间的间距消失,出现额外的横线和文本覆盖边框等问题。
我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。
问题单号:
CELLSJAVA-46265:将文件保存为html时,文本和边框之间的间距消失
CELLSJAVA-46266:将文件保存到html时会出现额外的横线
CELLSJAVA-46267:将文件保存为html时,文本会覆盖边框
关于文本和边框间距以及额外的横线问题,如果你用MS-Excel打开然后保存为Html文件,会发现有同样的现象。Aspose.Cells遵循MS-Excel的规则。请允许我分别稍做一下解释:1,我发现在您提供的Excel里,文本和边框之间并没有与间距相关的样式设置,如果给输出的html加上间距,那么从html转成Excel就会多出额外的间距。而之所以在Excel看到有间距,应该是因为Excel本身的设计(比如用OpenOffice打开你会发现间距没那么明显)。2,关于额外的横线(位于"F9:M9"顶部),是因为位于该单元格的正上方的单元格(“F8:M8”)设置了底边框,同时自身又设置了上边框。因此为了保持与Excel样式的一致性,输出的html的相关的<td>
的会设置相应的边框样式(对应的class='x37’和class=‘x24’)。我们建议最好的处理方式是去掉(“F9:M9”)的顶部边框。
关于问题单CELLSJAVA-46267(文本覆盖边框),请确保您的系统上安装了MS ゴシック字体。
当保存为html文件时,如果系统里没有所需要的字体,会查找其他字体代替来计算文本宽度。通过下面的代码可以得到哪些字体被替换:
try {
Workbook wb = new Workbook(srcFile);
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setWarningCallback(new MyWarningCallback());
wb.save(destFile, saveOptions);
} catch (Exception e) {
e.printStackTrace();
}
public static class MyWarningCallback implements IWarningCallback {
@Override
public void warning(WarningInfo warningInfo) {
if (warningInfo.getType() == ExceptionType.FontSubstitution) {
// Prints warning info
}
}
}
MS ゴシック字体不支持该文本,这句没太明白是什么意思? 我理解就是我电脑上有MS ゴシック字体,用咱们插件转换也会被替换么?
使用的文本中包含了MS ゴシック字体不支持的字符或符号。虽然该字体可以显示一些中文字符,但可能不支持所有字符,特别是一些复杂的或不常用的字符。
如果你的电脑上安装了MS ゴシック字体,但文本中包含的字符超出了该字体的支持范围,Aspose.Cells也会将用其它字体替换。
能告诉我下,是什么原因造成的么,或者说是字体原因造成的excel模板和生成的html显示不一致么?
某些字体加粗后的文本宽度计算存在偏差。现在改变了计算方式,可以得到正确的结果了。
该修复包含在计划于 2023 年 3 月上半月即将发布的版本 (Aspose.Cells v25.3) 。下一个版本发布时,您将收到通知。