找回密码
 立即注册

QQ登录

只需一步,快速开始

sjyShine

注册会员

4

主题

13

帖子

37

积分

注册会员

积分
37
最新发帖
sjyShine
注册会员   /  发表于:2022-2-8 13:59  /   查看:1221  /  回复:2
200金币
web端测试过 GC.Spread.Common.CultureManager.culture("zh-cn") 设置已经成功。但是服务端却无法实现。
主要需求是能够读取到正确的日期格式。
如英文版 日期格式默认是 m/d/yyyy 而中文版是 yyyy/m/d

服务端相关设置如下
GC = require('@grapecity/spread-sheets');
GC.Spread.Common.CultureManager.culture("zh-cn")
GCExcel = require('@grapecity/spread-excelio');
GC.Spread.Sheets.LicenseKey = license;
GCExcel.LicenseKey = license;

我使用GC.Spread.Common.CultureManager.culture("zh-cn") 设置了语言。
通过GC.Spread.Common.CultureManager.culture() 查看 语言已经设置为了 "zh-cn"

但是当我使用 如下方法,将excel文件转化为 xlsx文件之后,获取到的value值 (这边测试使用的是日期)依旧是英文版本的。
function fileToJson(path) {
    let ExcelIO = new GCExcel.IO();
    if (!fs.existsSync(path)) return {};
    return new Promise((resolve, reject) => {
        let data = fs.readFileSync(path);
        ExcelIO.open(data.buffer, json => {
            resolve(json);
        }, err => {
            reject(err);
        });
    });
}

数字测试.xlsx (1) 2.xlsx.zip

9.19 KB, 下载次数: 28

最佳答案

查看完整内容

您好, SpreadJS在node端并不完全支持,也并未做过完整测试,因此不推荐在node端使用。 后续如果在node端遇到其他异常情况,也有概率是不支持导致。 综上,请谨慎使用。

2 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-8 13:59:38
来自 3#
您好,
SpreadJS在node端并不完全支持,也并未做过完整测试,因此不推荐在node端使用。
后续如果在node端遇到其他异常情况,也有概率是不支持导致。
综上,请谨慎使用。
回复 使用道具 举报
sjyShine
注册会员   /  发表于:2022-2-8 15:25:22
2#
经过测试下来
web端是import导入到一个页面中。
当使用 GC.Spread.Common.CultureManager.culture("zh-cn")
设置语言时 gc.spread.sheets.all.13.2.3.min.js 中会调用 g.gcCultureInfo = a 进行语言设置
而读取excel时,gc.spread.excelio.13.2.3.min.js 会调用 e.gcCultureInfo 来获取当前语言环境。
node服务端,使用npm 当作两个模块引入之后,如上情况下。 GCExcel 会无法通过 e.gcCultureInfo 获取到设置的语言环境。
请问这个属于bug 还是有其他方法解决。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部