python:创建excel工作簿并将csv文件转储为工作表

siv*_*iva 18 python csv excel xlrd xlwt

我有几个csv文件,我想作为excel工作簿(xls/xlsx)中的新工作表转储.我该如何实现这一目标?

谷歌搜索并发现'pyXLwriter',但似乎该项目已停止.虽然我尝试'pyXLwriter'想知道有没有替代品/建议/模块?

非常感谢.

[编辑]

这是我的解决方案:(任何人都有更精简,更多的pythonic解决方案?做评论.thx)

import glob
import csv
import xlwt
import os

wb = xlwt.Workbook()


for filename in glob.glob("c:/xxx/*.csv"):
    (f_path, f_name) = os.path.split(filename)
    (f_short_name, f_extension) = os.path.splitext(f_name)
    ws = wb.add_sheet(str(f_short_name))
    spamReader = csv.reader(open(filename, 'rb'), delimiter=',',quotechar='"')
    row_count = 0
    for row in spamReader:
        for col in range(len(row)):
            ws.write(row_count,col,row[col])
        row_count +=1

wb.save("c:/xxx/compiled.xls")

print "Done"
Run Code Online (Sandbox Code Playgroud)

Joh*_*hin 28

不确定你的意思是"更精简,更多的pythonic",但你肯定可以稍微修饰一下:

import glob, csv, xlwt, os
wb = xlwt.Workbook()
for filename in glob.glob("c:/xxx/*.csv"):
    (f_path, f_name) = os.path.split(filename)
    (f_short_name, f_extension) = os.path.splitext(f_name)
    ws = wb.add_sheet(f_short_name)
    spamReader = csv.reader(open(filename, 'rb'))
    for rowx, row in enumerate(spamReader):
        for colx, value in enumerate(row):
            ws.write(rowx, colx, value)
wb.save("c:/xxx/compiled.xls")
Run Code Online (Sandbox Code Playgroud)


Ser*_*gio 12

您将在xlwt教程中找到所需的一切.这些库(xlrd和xlwt)是在Python中管理Excel交互的最常用选择.缺点是,目前它们只支持Excel二进制格式(.xls).

  • xlwt教程链接已损坏 (6认同)