使用 with..open 读取 xls 文件列表以复制到具有多个工作表的单个工作簿中
Use with..open to read a list of xls files to copy into a single workbook with multiple sheets
这里是第一个计时器。我的总体目标是将 3 个不同 xls 文件中的数据准确复制到一个 xls 工作簿中,每个原始 xls 文件都有一个 sheet。在非编程意义上,我想将每个 xls 文件中的数据复制并粘贴到新工作簿(xls 或 xlsx 文件)中它自己的 sheet 中。我一直在使用 xlrd & xlwt 来执行此操作,并且在搜索 SO 的帮助下,我已经能够获得大部分代码集。但是,我很难理解如何使用 with...open 命令从每个原始 xls 文件中读取数据并将其放在自己的文件中 sheet。您可能会从我的代码块中了解到,我的 Python 技能有限。谢谢!
import xlwt as xlwt
from os.path import join
import xlrd
wb = xlwt.Workbook()
path = r'C:\data_path\'
xls1 = 'file1.xls'
xls2 = 'file2.xls'
xls3 = 'file3.xls'
Sheet1 = 'file1_data'
Sheet2 = 'file2_data'
Sheet3 = 'file3_data'
names = [Sheet1, Sheet2, Sheet3]
dataset = [path + xls1, path + xls2, path + xls3]
for name in names:
wb.add_sheet(name)
for n, data in enumerate(dataset):
**I feel there should be some type of with..open statement here**
ws = wb.get_sheet(n)
ws.write(0,0, data)
wb.save(join(path,'test.xls'))
假设每个源文件只有一个sheet:
import xlwt as xlwt
from os.path import join
import xlrd
output = xlwt.Workbook()
path = r'C:\data_path\'
xls1 = 'file1.xls'
xls2 = 'file2.xls'
xls3 = 'file3.xls'
Sheet1 = 'file1_data'
Sheet2 = 'file2_data'
Sheet3 = 'file3_data'
names = [Sheet1, Sheet2, Sheet3]
dataset = [path + xls1, path + xls2, path + xls3]
for n, data in enumerate(dataset):
book = xlrd.open_workbook(data, formatting_info=True)
sheet = book.sheet_by_index(0)
r = output.add_sheet(names[n])
for row in range(sheet.nrows):
for column in range(sheet.ncols):
cell_val = sheet.cell_value(rowx=row, colx=column)
r.write(row, column, cell_val)
output.save(join(path,'test.xls'))
这里是第一个计时器。我的总体目标是将 3 个不同 xls 文件中的数据准确复制到一个 xls 工作簿中,每个原始 xls 文件都有一个 sheet。在非编程意义上,我想将每个 xls 文件中的数据复制并粘贴到新工作簿(xls 或 xlsx 文件)中它自己的 sheet 中。我一直在使用 xlrd & xlwt 来执行此操作,并且在搜索 SO 的帮助下,我已经能够获得大部分代码集。但是,我很难理解如何使用 with...open 命令从每个原始 xls 文件中读取数据并将其放在自己的文件中 sheet。您可能会从我的代码块中了解到,我的 Python 技能有限。谢谢!
import xlwt as xlwt
from os.path import join
import xlrd
wb = xlwt.Workbook()
path = r'C:\data_path\'
xls1 = 'file1.xls'
xls2 = 'file2.xls'
xls3 = 'file3.xls'
Sheet1 = 'file1_data'
Sheet2 = 'file2_data'
Sheet3 = 'file3_data'
names = [Sheet1, Sheet2, Sheet3]
dataset = [path + xls1, path + xls2, path + xls3]
for name in names:
wb.add_sheet(name)
for n, data in enumerate(dataset):
**I feel there should be some type of with..open statement here**
ws = wb.get_sheet(n)
ws.write(0,0, data)
wb.save(join(path,'test.xls'))
假设每个源文件只有一个sheet:
import xlwt as xlwt
from os.path import join
import xlrd
output = xlwt.Workbook()
path = r'C:\data_path\'
xls1 = 'file1.xls'
xls2 = 'file2.xls'
xls3 = 'file3.xls'
Sheet1 = 'file1_data'
Sheet2 = 'file2_data'
Sheet3 = 'file3_data'
names = [Sheet1, Sheet2, Sheet3]
dataset = [path + xls1, path + xls2, path + xls3]
for n, data in enumerate(dataset):
book = xlrd.open_workbook(data, formatting_info=True)
sheet = book.sheet_by_index(0)
r = output.add_sheet(names[n])
for row in range(sheet.nrows):
for column in range(sheet.ncols):
cell_val = sheet.cell_value(rowx=row, colx=column)
r.write(row, column, cell_val)
output.save(join(path,'test.xls'))