首页 > 解决方案 > 如何在不对名称进行硬编码的情况下动态地将我的两个列表列和行转换为 python 中的 excel 工作表

问题描述

我有两个列表“列”和“行”。如何在 python 的 excel 表中显示我的两个列表。实际上,我正在从 oracle 数据库中获取这些列和行。所以我想在 Excel 表中显示它们。请帮帮我。

 columns = ['temp', 'var,' 'log'] 
  rows = [['dat2jdhjbcjbd.cdndjs', 45, 'ijh'],['mydatainjjsb.fjdnjc54', 65, null]]

如何在不硬编码列或行名称的情况下将我的列显示为 excel 工作表中的列,并将行和行显示为 excel 工作表中的行,并在 python 中动态显示颜色?我的行非常大。

标签: pythonjsonexcelxlsxxlsxwriter

解决方案


我建议使用pandas. pandas将数据写入 excel 表可能不是最好的主意,但它使过程非常容易。

(1)新建excel文件:

import pandas as pd

# data
columns = ['temp', 'var', 'log']
rows = [
    ['dat2jdhjbcjbd.cdndjs', 45, 'ijh'],
    ['mydatainjjsb.fjdnjc54', 65, None]]

# combine rows and column names into pandas dataframe
data = pd.DataFrame(rows, columns=columns)

# write data
data.to_excel(
    '1.xlsx',
    sheet_name='new_sheet',
    index=False)

(2) 写入已有的excel文件:

import pandas as pd
import openpyxl

# data
columns = ['temp', 'var', 'log']
rows = [
    ['dat2jdhjbcjbd.cdndjs', 45, 'ijh'],
    ['mydatainjjsb.fjdnjc54', 65, None]]

# combine rows and column names into pandas dataframe
data = pd.DataFrame(rows, columns=columns)

filename = '1.xlsx'
with pd.ExcelWriter(filename, engine='openpyxl') as writer:
    # open existing excel file
    writer.book = openpyxl.load_workbook(filename)
    # add data
    data.to_excel(
        writer,
        sheet_name='new_sheet',
        index=False)
    writer.save()

推荐阅读