Excel转Html问题

见附件中的4个截图:
问题1:导图Sheet的图片,右边和下边的线丢失
问题2:前置条件Sheet有几个单元格背景和文字丢失,被隐藏了。斜线不显示。
问题3:列丢失
问题4:列丢失,宽度不对,显示走样。
BugExcel.zip (2.8 MB)

转换代码如下
//Load the sample Excel file
Workbook workbook = new Workbook(sourceFileName);

	//Specify Html Save Options
	HtmlSaveOptions options = new HtmlSaveOptions();

	//We do not want to export document, workbook and worksheet properties
	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);
	//Specify HtmlSaveOptions - Hide Overlaid Content with CrossHideRight while saving to Html
	options.setHtmlCrossStringType(HtmlCrossType.CROSS_HIDE_RIGHT);
	//Export the Excel file to Html with Html Save Options
	workbook.save(targetFileName, options);

@wangwenyou,

我们能够观察到这个问题,但我们需要更多地研究它。 我们已将此问题记录在我们的数据库中以供调查和修复。 有一次,我们将为您提供一些新闻,我们将在此主题中为您更新。

此问题已记录为

CELLSJAVA-42856 - Excel转Html问题

@wangwenyou,

这是为了通知您我们已经修复了您的问题(之前记录为“CELLSJAVA-42856”)。 我们很快会在执行质量检查并合并其他增强功能和修复程序后为您提供固定版本。

@wangwenyou,

关于CELLSJAVA-42856,有一些提示:

1.不支持斜线边框。 将文件导出为HTML时,MS-Excel也不支持斜杠边框。

2.您可以将线形替换为斜线边框。

请尝试最新的Aspose.Cells java版本19.3.6。 应该修复这些问题。

aspose-cells-19.3.6.zip (6.5 MB)

收到,非常感谢!我这就试试

@wangwenyou,

当然,花一点时间来评估修复。希望它能解决你的问题。

The issues you have found earlier (filed as CELLSJAVA-42856) have been fixed in Aspose.Cells for Java 19.4. This message was posted using BugNotificationTool from Downloads module by Amjad_Sahi

感谢!验证确认已经修复了

@wangwenyou,
很高兴知道你的问题是由更新版本整理出来的。如果您需要进一步的帮助或有其他问题或疑问,请随时与我们联系,我们很乐意尽快为您提供帮助。

问题2有反复,使用最新版本19.4
Mac系统复制windows字体以后时有部分单元格被隐藏了,style=“visibility:hidden;”
可是如果不带复制的字体时,显示是正常的
test.zip (24.3 KB)

@wangwenyou,
我已经尝试过将样本XLSX文件“jg2.xlsx”转换为HTML。 其结果类似于“good.html”。 在我的MAC环境中,不会再现此问题。

你提到如果没有复制字体,那么输出就可以了。 您能否通过提供详细步骤帮助我们在我们的环境中制作“bad.html”? 另外,请提一下如何在MAC环境中控制Windows字体的复制?

我也是Mac,所以之前我一度认为问题修复了
后来在测试的Windows和Linux下都出现问题
本机搭建了一份Docker下的CentOs,并复制Windows字体以后问题回显
我是在服务的根目录下建立了一个font目录简化字体的复制,代码如下
String defaultSong = “思源宋体 CN”;//,Source Han Sans CN

String defaultHei = “思源黑体 CN”;//,Source Han Serif CN

String defaultFont = defaultSong;

Map<String,String> fontMapping = new HashMap<String,String>();

fontMapping.put(“微软雅黑”, defaultHei);

fontMapping.put(“微软雅黑 Bold”, defaultHei);

fontMapping.put(“华文西黑”, defaultHei);

fontMapping.put(“STXihei”, defaultHei);

fontMapping.put(“仿宋”, defaultSong);

fontMapping.put(“宋体”, defaultSong);

fontMapping.put(“Arial”, defaultSong);

fontMapping.put(“幼圆”, defaultSong);

fontMapping.put(“MS Mincho”, defaultHei);

fontMapping.put(“等线”, defaultSong);

fontMapping.put(“DengXian”, defaultSong);

String fontFolder = Thread. currentThread ().getContextClassLoader().getResource(".").getFile() +“font/”;

LOG .info(“use font:” + fontFolder);

// word

FontSettings fontSettings = FontSettings. getDefaultInstance ();

fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName(defaultFont);

fontSettings.setFontsFolder(fontFolder, false );

fontSettings.getSubstitutionSettings().getFontInfoSubstitution().setEnabled( true );

for (Map.Entry<String, String> e :fontMapping.entrySet()) {

fontSettings.getSubstitutionSettings().getTableSubstitution().addSubstitutes(e.getKey(), e.getValue());

}

// excel

FontConfigs. setDefaultFontName (defaultFont);

FontConfigs. setFontFolder (fontFolder, true );

@wangwenyou,
我们正在研究这个问题并尝试重现它。我们将尽快回复此处以分享我们的反馈意见。

@wangwenyou,
我们已经审核了这些信息,但尚无法重现该问题。 请发送一个完整的运行项目,从Windows复制并放在fonts文件夹中的字体文件。 我们需要一个完整的项目以及可以生成bad.html的字体供我们参考。

对于您在这方面给您带来的不便,我们深表歉意。

我逐渐缩小范围验证,确认了font目录只要有MSYH.TTC文件时问题回显
可运行的代码详见https://1drv.ms/f/s!Am94PAixt1dAgZ9P-uP1rTYA-0G7sA
完整测试源码如下
import com.aspose.cells.FontConfigs;

import com.aspose.cells.HtmlCrossType;

import com.aspose.cells.HtmlSaveOptions;

import com.aspose.cells.Workbook;

public class ExcelConvertTest {

public static void main(String[] args) {

new com.aspose.cells.License().setLicense(Thread. currentThread ().getContextClassLoader(). getSystemResourceAsStream (“Aspose.Total.Java.lic”));

String root = Thread. currentThread ().getContextClassLoader().getResource(".").getFile();

String fontFolder = root +“font/”;

FontConfigs. setFontFolder (fontFolder, true );

try {

workbook2Html (root+“test.xlsx”,root+“test.html”);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

private static void workbook2Html(String sourceFileName, String targetFileName) throws Exception {

//Load the sample Excel file

Workbook workbook = new Workbook(sourceFileName);

//Specify Html Save Options

HtmlSaveOptions options = new HtmlSaveOptions();

//We do not want to export document, workbook and worksheet properties

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

//Specify HtmlSaveOptions - Hide Overlaid Content with CrossHideRight while saving to Html

options.setHtmlCrossStringType(HtmlCrossType. CROSS_HIDE_RIGHT );

//Export the Excel file to Html with Html Save Options

workbook.save(targetFileName, options);

}

}

@wangwenyou,
我们能够观察到这个问题,但我们需要更多地研究它。 我们已将此问题记录在我们的数据库中以供调查和修复。 有一次,我们将为您提供一些新闻,我们将在此主题中为您更新。

此问题已记录为

CELLSJAVA-42899  - Excel转Html问题

@wangwenyou,
这是为了通知您我们已经修复了您的问题(之前记录为“CELLSJAVA-42899”)。 我们很快会在执行质量检查并合并其他增强功能和修复程序后为您提供固定版本。

@wangwenyou,

请尝试我们的最新版本/修复:Aspose.Cells for Java v19.4.6(附)

你的问题应该修复它。

请告诉我们您的反馈意见。
Aspose_Cells_Java_v19.4.6.zip (6.5 MB)

The issues you have found earlier (filed as CELLSJAVA-42899) have been fixed in Aspose.Cells for Java 19.5. This message was posted using BugNotificationTool from Downloads module by Amjad_Sahi