为了账号安全,请及时绑定邮箱和手机立即绑定

在只读模式下使用 OpenPyXL 获取 Excel 工作表的列名

在只读模式下使用 OpenPyXL 获取 Excel 工作表的列名

繁星coding 2021-05-30 14:57:22
我该如何找回openpyxl只读 工作表中的列名(第一行单元格的值)?City, Population,Country在下面的示例工作表中openpyxl 只读工作簿中的所有列名?City,Population,Country,从表1帧和其他列名从所有其他工作表Excel 工作表示例:| City       | Population  |    Country   || -----------|------------ | ------------ || Madison    |   252,551   |     USA      || Bengaluru  | 10,178,000  |    India     || ...        |       ...   |     ...      |示例代码:from openpyxl import load_workbookwb = load_workbook(filename=large_file.xlsx, read_only=True)sheet = wb.worksheets[0]... (not sure where to go from here)笔记:我必须使用只读,因为 Excel 文件有超过 100 万行(不要问)我想要列名,以便最终推断出列类型并将excel数据导入到PostgreSQL数据库中
查看完整描述

3 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

这将打印第 1 行的所有内容;


list_with_values=[]

for cell in ws[1]:

    list_with_values.append(cell.value)

如果出于某种原因想要获取已填写的列字母的列表,则可以:


column_list = [cell.column for cell in ws[1]]

对于你的第二个问题;假设您已将标题值存储在名为“list_with_values”的列表中


from openpyxl import Workbook

wb = Workbook()

ws = wb['Sheet']

#Sheet is the default sheet name, you can rename it or create additional ones with wb.create_sheet()

ws.append(list_with_values)

wb.save('OutPut.xlsx')


查看完整回答
反对 回复 2021-06-01
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

只读模式提供对工作表中任何一行或一组行的快速访问。使用该方法iter_rows()限制选择。因此,要获得工作表的第一行:


rows = ws.iter_rows(min_row=1, max_row=1) # returns a generator of rows

first_row = next(rows) # get the first row

headings = [c.value for c in first_row] # extract the values from the cells


查看完整回答
反对 回复 2021-06-01
?
大话西游666

TA贡献1817条经验 获得超14个赞

查理·克拉克斯(Charlie Clarks)的答案精简到具有列表理解力

    headers = [c.value for c in next(wb['sheet_name'].iter_rows(min_row=1, max_row=1))]


查看完整回答
反对 回复 2021-06-01
  • 3 回答
  • 0 关注
  • 811 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信