找回密码
 立即注册

QQ登录

只需一步,快速开始

nutstore
金牌服务用户   /  发表于:2023-4-18 11:54  /   查看:751  /  回复:4
本帖最后由 nutstore 于 2023-4-18 12:44 编辑

代码如下:


  1. Workbook workbook = new Workbook();
  2.         IWorksheet sheet = workbook.getActiveSheet();

  3.         sheet.getRange("A1").setValue(123.11);
  4.         sheet.getRange("A2").setFormula("=A1");

  5.         sheet.getRange("A3").setFormula("=""&IF(TRIM(A1)="","",IF(A1=0,"",""&IF(A1<0,"负","")&IF(INT(A1),TEXT(INT(ABS(A1)),"[dbnum2]")&"圆",)&IF(INT(ABS(A1)*10)-INT(ABS(A1))*10,TEXT(INT(ABS(A1)*10)-INT(ABS(A1))*10,"[dbnum2]")&"角",IF(INT(ABS(A1))=ABS(A1),,IF(ABS(A1)<0.1,,"零")))&IF(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),TEXT(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),"[dbnum2]")&"分","整")))");
  6.         sheet.getRange("A4").setFormula("=TEXT(INT(ABS(123.00)),"[dbnum2]")");

  7.         workbook.calculate();

  8.         System.out.println(sheet.getRange("A1").getValue());
  9.         System.out.println(sheet.getRange("A2").getValue());
  10.         System.out.println(sheet.getRange("A3").getValue());
  11.         System.out.println(sheet.getRange("A4").getValue());
  12.         System.out.println(sheet.getRange("A4").toJson());
复制代码

直接在本地跑测试, 输出没有问题, 如图
image.png571950683.png

但是我放在docker里, 基于jetty提供web服务, 转换就有问题了
image.png995951538.png

代码是一模一样的
image.png557932128.png


4 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-18 18:00:38
沙发
您部署的操作系统是不是没有安装中文语言呢?
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-4-18 18:44:28
板凳
Clark.Pan 发表于 2023-4-18 18:00
您部署的操作系统是不是没有安装中文语言呢?

尝试了一下不行, 我本地同样是linux系统, 我把整个字体目录挂载到docker里面还是一样的。 如果是缺中文字体, 这里的"圆" ,"角","分" 也应该显示不出来把

image.png474032287.png
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-4-19 09:34:57
地板
nutstore 发表于 2023-4-18 18:44
尝试了一下不行, 我本地同样是linux系统, 我把整个字体目录挂载到docker里面还是一样的。 如果是缺中文 ...

好吧, 我定义了这两个环境变量就可以了

ENV LC_ALL=zh_CN.UTF-8
ENV LANG zh_CN.UTF-8
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-19 14:49:30
5#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部