17.0.10 nameStyles里面的属性有' 单引号,导致无法直接存入数据库
您好,
可以参考下面的属性:includeUnusedNames
1、导出sjs:
spread.save(function (blob) {
saveAs(blob, fileName);
console.timeEnd("导出时间")
}, e => {
console.log('失败', e.errorMessage);
}), {
includeBindingSource: false,//保存时是否包括绑定源,默认为false
includeStyles: true,//保存时是否包括样式,默认为true
includeFormulas: true,//保存时是否包括公式,默认为true
saveAsView: false,//保存时是否应用格式字符串,默认为false
includeAutoMergedCells: false,//保存时是否包括自动合并的单元格,默认为false
includeCalcModelCache: false,//是否包括额外的计算数据。使用这些数据打开文件时可能会更快,默认为false
includeUnusedNames: true,//保存时是否包含未使用的自定义名称,默认为true
includeEmptyRegionCells: true,//是否在使用的数据范围之外包括任何空单元格(无数据的单元格或仅样式的单元格),默认为true
saveR1C1Formula: false,//是否在文件中保存r1c1公式,仅适用于sjs文件类型,默认false
};2、导出excel文件
spread.export(function (blob) {
saveAs(blob, fileName);
console.timeEnd("导出时间")
}, e => {
console.log('失败', e.errorMessage);
}, {
fileType: GC.Spread.Sheets.FileType.excel,
includeBindingSource: false, // 将工作簿转换为json时是否包含绑定源,默认false
includeStyles: true, // 工作簿转json时是否包含样式,默认true
includeFormulas: true, // 工作簿转json时是否包含公式,默认true
saveAsView: false, // 将工作簿转换为 json 时是否将格式字符串应用于导出值,默认 false
rowHeadersAsFrozenColumns: false, // 将工作簿转换为 json 时是否将行标题视为冻结列,默认 false
columnHeadersAsFrozenRows: false, // 将工作簿转换为 json 时是否将列标题视为冻结行,默认 false
includeAutoMergedCells: false, // 工作簿转json时是否包含自动合并的单元格,默认false
includeCalcModelCache: true, // 是否包含计算的额外数据。打开包含这些数据的文件时可以更快,默认 false。
includeUnusedNames: false, //保存时是否包含未使用的自定义名称,默认 true。
}
);
您好!SpreadJS支持多种导出文件,何不选择存储这种通用文件类型保存文件内容?请教下您的存储需求场景。 Wilson.Zhang 发表于 2024-12-24 08:54
您好!SpreadJS支持多种导出文件,何不选择存储这种通用文件类型保存文件内容?请教下您的存储需求场景。
采用toJSON的形式将Json字符串存入mysql数据库中,之后再查出来通过fromJson回显,单引号是数据库里面的关键字,无法直接执行sql语句进行存储,需要转义一下 优米信息 发表于 2024-12-24 09:11
采用toJSON的形式将Json字符串存入mysql数据库中,之后再查出来通过fromJson回显,单引号是数据库里面的 ...
您设置的字体是西文字体,西文字体名称可能包含多个单词,单词之间由空格间隔。
在namedStyles属性中,font属性值包含了字体样式、字号、字体名称等信息,各部分之间由空格间隔。字体样式、字号等均由单个单词表示,中文字体名称各字符串之间不需要空格间隔。如果不使用单引号对包围西文字体名称,那么其中的空格间隔将和font属性值各成分之间空格混淆,不利于序列化和反序列化。这是正常设计。
不建议您修改json数据中的内容,会存在一定风险。可以考虑将toJSON得到的json字符串封装进文件存储,在数据库中存储文件对应的存储路径。 Wilson.Zhang 发表于 2024-12-24 12:01
您设置的字体是西文字体,西文字体名称可能包含多个单词,单词之间由空格间隔。
在namedStyles属性中,f ...
nameStyles属性是什么时候添加进去的,为什么fromJson导出来的数据显示nameStyles有90多条,这些样式是否是多余的,或者有什么方法我可以设置成宋体的样式,从而避免西文字体之间的空格 本帖最后由 Ellia.Duan 于 2024-12-25 12:30 编辑
您好,关于您的问题,一一回答。
1、为什么fromJson导出来的数据显示nameStyles有90多条
nameStyles包括在SpreadJS中为工作簿,为sheet设置的自定义样式,还包括在excel中设置的样式,您可以通过nameStyles的name名称进行排查,看哪些单元格使用了这些样式。
2、如何避免多余的样式。
SpreadJS支持导出sjs ,excel的时候,可以选择是否包含未使用的名称,如下图所示。
3、或者有什么方法我可以设置成宋体的样式
spread.getNamedStyles().forEach(function (style) {
style._fontFamily= "宋体";
});
spread.sheets.forEach((sheet) => {
sheet.getNamedStyles().forEach(function (style) {
style._fontFamily= "宋体";
})
})可以参考上面的代码,按需对自定义样式设置fontFamily
Ellia.Duan 发表于 2024-12-25 12:29
您好,关于您的问题,一一回答。
1、为什么fromJson导出来的数据显示nameStyles有90多条
nameStyles包括 ...
(SpreadJS支持导出sjs ,excel的时候,可以选择是否包含未使用的名称, ) 这个有api可以调用吗
页:
[1]