首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如何编写从excel文件中提取数据的文本文件。格式为“列标题:单元格值”

问Python:如何编写从excel文件中提取数据的文本文件。格式为“列标题:单元格值”
EN

Stack Overflow用户
提问于 2021-12-27 04:00:59
回答 1查看 439关注 0票数 0

我试图自动输出一个excel文件,这样它就更容易读了。我有一个excel文件,列A到BY。我的计划是读取每一行与用户输入相匹配的日期。然后读取行中的每个单元格,如果单元格不是空白,则输出单元格值。在此之后,数据将以以下格式写入文本文件:

  • Name
  • Column标头C:单元格值
  • 列标头K:单元格值
  • 列标题Z:单元格值

  • Name 2
  • 列标题C:单元格

“Name”是其中一列。因此,我认为这样做的想法是制作一个名称字典,每个名称都有一个嵌套的字典,包含每个列的标题和值。

我正在使用openpyxl来完成这项任务。我能够正确地循环所有符合我的标准的行和单元格。但是,我很难将它转换为我感兴趣使用的格式的文本文件。可以为所有列提供一些打印单元格值和附带列头的方法吗?以及在所需的格式?快乐提供更多的信息,是必要的。感谢任何能帮忙的人!这也是我的第一篇帖子,所以让我知道,否则,我可以帮助。

编辑:我添加了一些用于遍历列和行的代码。“工作日期”是一个用户输入值,它只选择具有要处理的正确日期值的行。

遍历给定日期的每一行,并打印其中有值的单元格。

代码语言:javascript
复制
cards = {}
activity_list = []
for row in active_sheet.iter_rows(max_row=22):
    if row[0].value == work_date:
        cards[row[1].value] = ['Start']
        for cell in row:
            if cell.value:
                activity_list.append(cell.value)
                for key, value in cards.items():
                    cards[key].append(activity_list)
    else:
        continue

这里我们只选择日期正确的行,并且只打印相关的、非空的单元格.并将它们打印并格式化为txt文件。

代码语言:javascript
复制
with open(timecardtxt, 'w') as file_object:
    for key, values in cards.items():
        file_object.write("Name: " + key)
        for item in value[1]:
            print(item, file=file_object)
EN

回答 1

Stack Overflow用户

发布于 2021-12-27 21:27:58

您的代码包含了一些错误,我认为这里不需要太多的讨论,但是很明显,它不会按现在的方式运行,也不会按您的要求执行。

然而,我认为这才是你真正需要的:

代码语言:javascript
复制
import pandas as pd


df = pd.read_excel('data.xlsx')
df.to_csv('data.csv')

请注意,您可以使用pandas安装pip install pandas,而pandas需要安装openpyxl才能使read_excel工作。

这个简单的例子不会进行任何过滤或任何事情,但是使用dataframe df很容易。在.csv中,空单元格只是被表示为空单元格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70491564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档