AWSLambda:创建和下载EXCEL文件时出现编码问题
创始人
2024-11-19 09:30:10
0

AWS Lambda 会在导出 Excel 文件时遇到编码问题,这通常是因为缺乏相应的本地库和字体。通过在 Lambda 函数中安装 openpyxl 和 xlwt 库,并在函数中添加字体路径,可以解决此问题。

确保在 AWS Lambda 环境中安装了以下 Python 包:

  • openpyxl
  • xlwt

在 Lambda 函数的代码中,可以通过设置以下字体路径解决编码问题:

import os import openpyxl from openpyxl.utils import get_column_letter from openpyxl.styles import Font

设置字体路径

FONT_NAME = 'Droid Sans Fallback' FONT_PATH = os.path.exists('/usr/share/fonts/truetype') and '/usr/share/fonts/truetype' or
os.path.abspath(os.path.join(os.path.dirname(file), 'fonts')) if not os.path.exists(FONT_PATH): FONT_PATH = None

def create_excel_file(data): # 创建 Excel 文件 try: wb = openpyxl.Workbook() # 添加一个工作表 ws = wb.active

    # 设置表头
    headers = ['ID', 'Name', 'Email']
    for col_num, column_title in enumerate(headers, 1):
        column_letter = get_column_letter(col_num)
        ws['{}1'.format(column_letter)].font = Font(size=14, bold=True)
        ws['{}1'.format(column_letter)] = column_title

    # 添加数据
    for row_num, row_data in enumerate(data, 2):
        ws.cell(row=row_num, column=1).value = row_data.get('id')
        ws.cell(row=row_num, column=2).value = row_data.get('name')
        ws.cell(row=row_num, column=3).value = row_data.get('email')

    # 保存文件
    file_path = '/tmp/my_excel_file.xlsx'
    wb.save(file_path)

    return file_path

except Exception as e:
    print(e)
    return None

请注意:如果您需要在 Lambda 函数中处理某些非 ASCII 字符,例如中文字符,还需要将字符编码为 UTF-8。例如:

ws.cell(row=row_num, column=2).value = row_data.get('name').encode('utf-8')

相关内容

热门资讯

突发!随意玩辅助器视频透视挂!... 突发!随意玩辅助器视频透视挂!果然真的有辅助下载(有挂工具)-哔哩哔哩1、下载好随意玩辅助器视频透视...
截至发稿!微信卡五星辅助器!真... 截至发稿!微信卡五星辅助器!真是真的是有辅助挂(发现有挂)-哔哩哔哩1、截至发稿!微信卡五星辅助器!...
做出回应!衢州都莱破解器!真是... 做出回应!衢州都莱破解器!真是有挂辅助软件(有挂实锤)-哔哩哔哩小薇(辅助器软件下载)致您一封信;亲...
今天下午!八仙游戏辅助!一贯存... 今天下午!八仙游戏辅助!一贯存在有辅助软件(有挂讲解)-哔哩哔哩1、进入到八仙游戏辅助是否有挂之后,...
经调查!道游辅助脚本!确实是真... 经调查!道游辅助脚本!确实是真的辅助脚本(有挂存在)-哔哩哔哩1、全新机制【道游辅助脚本ai辅助工具...
据相关数据显示!陕麻圈黑科技!... 据相关数据显示!陕麻圈黑科技!切实是有辅助软件(有挂详细)-哔哩哔哩1、进入游戏-大厅左侧-新手福利...
不少玩家反映!福州十八扑有外g... 不少玩家反映!福州十八扑有外g挂吗!其实有挂辅助修改器(详细教程)-哔哩哔哩1、完成福州十八扑有外g...
记者获悉!福建兄弟13水辅助!... 记者获悉!福建兄弟13水辅助!总是是真的辅助安装(有挂方式)-哔哩哔哩1、完成福建兄弟13水辅助辅助...
截至目前!天天贵阳app破解版... 截至目前!天天贵阳app破解版!都是真的有辅助插件(有挂解惑)-哔哩哔哩1、实时天天贵阳app破解版...
截至发稿!掌中乐游戏中心云南辅... 截至发稿!掌中乐游戏中心云南辅助!一贯存在有辅助app(有挂规律)-哔哩哔哩掌中乐游戏中心云南辅助是...