Flutter中为Excel生成器添加自定义字体(MS Pゴシック)的方法
在Flutter的excel包中添加外部日文字体“MS Pゴシック”的解决方案
可以添加外部TTF字体,excel包支持注册自定义字体,按以下步骤操作即可:
配置资源文件
将“MS Pゴシック”的TTF文件放入项目资源目录(比如assets/fonts/),并在pubspec.yaml中添加资源声明:flutter: assets: - assets/fonts/ms_p_gothic.ttf读取字体二进制数据
通过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();注册字体并应用到单元格
将字体注册到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
相关产品推荐
相关产品推荐

