当前位置: 首页 > 面试题库 >

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

宰父单弓
2023-03-14
问题内容

我有几个要转储为excel工作簿(xls / xlsx)中新工作表的csv文件。我该如何实现?

Google搜索并找到“ 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"

问题答案:

不知道 所说的“更精简,更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")


 类似资料:
  • 所以我有 1500 个 Excel 工作簿,每个工作簿都有 10 张结构完全相同的工作表。我尝试将多个Excel工作簿合并到一个文件中,并使用以下代码成功: 谢谢,努尔贝克

  • 所以在问这个之前,我搜索并发现了一些与我在这里想要做的相似的事情。 基本上我有工作簿AlphaMaster。这个工作簿是一个模板,我想用它来创建每周的新工作簿。 在本工作簿中,有名为“周一至周六”的工作表,以及带有相应日期的周一、周二等其他工作表。 我创建了一个在打开工作簿时加载的表单。我想要的是当我单击表单运行时,它将: > 将代码保存模板作为新工作簿运行 根据userform1的输入重命名工作

  • 我得到了这个错误: 工作簿已包含此名称的工作表 行应该检查工作簿是否已经包含此名称的工作表,但它不工作。我仍然有错误。 谢谢你的帮助!

  • 我无法使用 apache poi eclipse 在我创建的 java excel 中创建工作表

  • 我有一个Excel工作簿,其中包含36个不同的工作表,我每两周收到一次,工作表在所有标签上都有共同的标题,并且每个标签上都有不同的唯一标题,但每条记录都有一个唯一的ID,可以有多个记录。 我要做的是从所有的工作表中提取唯一的id,然后将每个工作表中的数据提取到一个工作表中,其中包含所有的公共标题和唯一标题。 我正在考虑使用下面帖子中的代码将其导入Access。连接表并将其导出回Excel中的一个工

  • 然后另一个问题是工作簿的名称都不同,所有300个。是否有一个宏可以复制我打开的工作簿,而不是每次都输入实际的名称?