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

如何用openpyxl或pandas将Excel带引号值转为可执行Python列表

解决方法

使用openpyxl实现

  1. 读取Excel单元格内容后,先去除每个字符串首尾的双引号
  2. 对处理后的内容尝试执行:如果是可运行的Python表达式则动态生成结果,普通字符串直接保留

代码示例:

import openpyxl
import random

random_names = ["Harry", "Sam", "Albert"]

# 加载目标工作簿和工作表
wb = openpyxl.load_workbook("your_file.xlsx")
ws = wb.active

result_list = []
for row in ws.iter_rows(values_only=True):
    for cell_value in row:
        if cell_value is not None:
            # 移除首尾的双引号
            cleaned_str = cell_value.strip('"')
            try:
                # 执行表达式获取动态结果
                evaluated_val = eval(cleaned_str)
                result_list.append(evaluated_val)
            except (SyntaxError, NameError):
                # 普通字符串直接加入列表
                result_list.append(cleaned_str)

print(result_list)
# 输出示例: ["Hello!", "Testing!", "My name is Albert.", "Goodbye!"]

使用pandas实现

核心逻辑和openpyxl一致,读取数据后逐元素处理,区分普通字符串和可执行表达式:

代码示例:

import pandas as pd
import random

random_names = ["Harry", "Sam", "Albert"]

# 读取Excel数据(header=None表示无表头)
df = pd.read_excel("your_file.xlsx", header=None)

result_list = []
# 遍历所有非空单元格值
for value in df.stack().tolist():
    if pd.notna(value):
        cleaned_str = str(value).strip('"')
        try:
            evaluated_val = eval(cleaned_str)
            result_list.append(evaluated_val)
        except (SyntaxError, NameError):
            result_list.append(cleaned_str)

print(result_list)
# 输出示例: ["Hello!", "Testing!", "My name is Sam.", "Goodbye!"]

注意事项

  • eval存在安全风险,仅适用于你完全可控的Excel内容;如果内容不可控,请勿使用此方法。
  • 若Excel中的表达式逻辑更复杂,可根据实际场景调整异常捕获规则,避免误判普通字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:09:58