python - 在工作表之间切换

标签 python excel xlsx xlsxwriter

我正在尝试从 csv 创建一个 xlsx 文件。此 csv 中的每一行都包含属性“ATR”。许多行可以具有相同的属性“ATR”,例如“x”、“y”等。

所以我想做的就是逐一遍历 csv 文件行并将它们写入这个 xlsx 文件中。如果不存在名称为属性“ATR”值的工作表,请创建它并在其中写入此行。如果已经存在此工作表,则将该行写入此工作表中。

def temp_file_to_xlsx():
    wb = xlsxwriter.Workbook('export.xlsx')

    with open('export/export.csv') as f:
        r=-1
        for row in f:
            r+=1
            data = {}
            splitted_row = row.split('::')
            for column in splitted_row:
                splitted_column = column.split('.:.')
                data[splitted_column[0]]=splitted_column[1]

            ws = wb.add_worksheet(data['ATR']) # IT SAYS THAT THERE IS ALREADY WORKSHEET WITH THIS NAME SO I WANT TO WRITE IT THERE
            attributes = data.keys()
            for c in xrange(len(attributes)):
                try:
                    ws.write(c,r,data[attributes[c]])
                except:
                    ws.write(c,r,'-')
        wb.close()

这可能吗?如果可以,怎么做?

最佳答案

您需要记下您创建的所有工作表并重复使用它们。 例如,在函数开始时,创建一个字典:

sheets = {}

然后替换行:

ws = wb.add_worksheet(data['ATR'])

if not sheets.has_key(data['ATR']):
    sheets[data['ATR']] = wb.add_worksheet(data['ATR'])
ws = sheets[data['ATR']]

因此保留所有先前创建的工作表并重复使用它们。

关于python - 在工作表之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32118668/

相关文章:

excel - 使用 VBA 将文件夹导入 Excel (FileDialogFolderPicker)

c# - 如何从 C# 应用程序将图片插入到 Excel 中?

python - 多个键的总计

java - 无法从 java md5 哈希中获得与 python md5 哈希相同的结果

excel - 使用变量打开工作簿时出现错误438

java - 如何正确构建包含多行的 xlsx 文件?

java - 使用 Java 将 Excel (.xlsx) 转换为 PDF

python - 将绘图中的数据保存到 numpy 数组

python - 关于将 bool 值与 True 或 False 进行比较的奇怪 PEP8 建议

node.js - 通过 Restify 从 Node.js 发送到客户端时 XLSX 文件损坏