小虾也是参考了一些大神的代码,然后自己动手实现了一下,然后发布出来,有需要的来学习呀!
小虾在这儿提供2种方法来实现,但小虾比较喜欢第一种,容易而且好理解一点。
第一种实现方法:
# 导入需要使用的包
import xlrd # 读取Excel文件的包
import xlsxwriter # 将文件写入Excel的包
source_xls = ["C:/Users/yxx/Desktop/ing/1.xlsx", "C:/Users/yxx/Desktop/ing/2.xlsx"]
target_xls = "C:/Users/yxx/Desktop/ing/3.xlsx"
# 读取数据
data = []
for i in source_xls:
wb = xlrd.open_workbook(i) # 先打开第一个文件1.xlsx
for sheet in wb.sheets(): # 读取 表中的 工作表sheet的个数
for rownum in range(sheet.nrows): # 依次读取一个sheet中的数据
data.append(sheet.row_values(rownum)) # 把其数据放入 data[]列表中
print(data) # 打印该列表
# 写入数据
workbook = xlsxwriter.Workbook(target_xls) # 创建了一个名字叫做3.xlsx , Excel表格文件
worksheet = workbook.add_worksheet() # 建立sheet,
font = workbook.add_format({"font_size":14}) # 表格中值(字体)的大小
for i in range(len(data)): # 从data列表中读取数据
for j in range(len(data[i])):
worksheet.write(i, j, data[i][j], font)
# 关闭文件流
workbook.close()
实验结果:
第二种方法实现:
# 导入需要使用的包
import xlrd # 读取Excel文件的包
import xlsxwriter # 将文件写入Excel的包
# 打开一个excel文件
def open_xls(file):
f = xlrd.open_workbook(file)
return f
# 获取excel中所有的sheet表
def getsheet(f):
return f.sheets()
# 获取sheet表的行数
def get_Allrows(f, sheet):
table = f.sheets()[sheet]
return table.nrows
# 读取文件内容并返回行内容
def getFile(file, shnum):
f = open_xls(file)
table = f.sheets()[shnum]
num = table.nrows
for row in range(num):
rdata = table.row_values(row)
datavalue.append(rdata)
return datavalue
# 获取sheet表的个数
def getshnum(f):
x = 0
sh = getsheet(f)
for sheet in sh:
x += 1
return x
# 函数入口
if __name__ == '__main__':
# 定义要合并的excel文件列表
allxls = ['C:/Users/yxx/Desktop/ing/1.xlsx', 'C:/Users/yxx/Desktop/ing/2.xlsx'] # 列表中的为要读取文件的路径
# 存储所有读取的结果
datavalue = []
for fl in allxls:
f = open_xls(fl)
x = getshnum(f)
for shnum in range(x):
print("正在读取文件:" + str(fl) + "的第" + str(shnum) + "个sheet表的内容...")
rvalue = getFile(fl, shnum)
# 定义最终合并后生成的新文件
endfile = 'C:/Users/yxx/Desktop/ing/4.xlsx'
wb = xlsxwriter.Workbook(endfile)
# 创建一个sheet工作对象
ws = wb.add_worksheet()
for a in range(len(rvalue)):
for b in range(len(rvalue[a])):
c = rvalue[a][b]
ws.write(a, b, c)
wb.close()
print("文件合并完成")
实验结果:
不后悔过去,不幻想未来,把握好现在,就是对自己最好的交代!!!!!!!!!!!!