You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中为Excel生成器添加自定义字体(MS Pゴシック)的方法

在Flutter的excel包中添加外部日文字体“MS Pゴシック”的解决方案

可以添加外部TTF字体,excel包支持注册自定义字体,按以下步骤操作即可:

  1. 配置资源文件
    将“MS Pゴシック”的TTF文件放入项目资源目录(比如assets/fonts/),并在pubspec.yaml中添加资源声明:

    flutter:
      assets:
        - assets/fonts/ms_p_gothic.ttf
    
  2. 读取字体二进制数据
    通过Flutter的rootBundle加载字体文件的字节流(excel包需要直接操作字体二进制数据,而非Flutter常规的字体加载方式):

    import 'package:flutter/services.dart';
    import 'package:excel/excel.dart';
    
    // 异步读取字体文件
    final fontByteData = await rootBundle.load('assets/fonts/ms_p_gothic.ttf');
    final fontUint8List = fontByteData.buffer.asUint8List();
    
  3. 注册字体并应用到单元格
    将字体注册到Excel实例,然后在单元格样式中指定注册的字体名称:

    // 创建Excel实例
    var excel = Excel.createExcel();
    var targetSheet = excel['Sheet1'];
    
    // 注册外部字体,自定义字体名称(比如'MS PGothic')
    excel.registerFont('MS PGothic', fontUint8List);
    
    // 创建包含自定义字体的样式
    var customStyle = CellStyle(
      fontName: 'MS PGothic',
      fontSize: 12,
    );
    
    // 给单元格赋值并应用样式
    targetSheet.cell(CellIndex.indexByString('A1')).value = 'こんにちは、世界!';
    targetSheet.cell(CellIndex.indexByString('A1')).cellStyle = customStyle;
    
    // 保存Excel文件
    await excel.save(fileName: 'custom_font_excel.xlsx');
    
  • 注意事项
    • 确保TTF文件完整无损坏,部分字体可能包含多个字重/样式,需对应正确的文件
    • 注册字体时的名称(如MS PGothic)要和样式中fontName完全一致
    • 确认字体的版权许可,避免商用版权问题

内容的提问来源于stack exchange,提问作者MURALI THANGAVEL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:16:01