一、合并路径下所有后缀xlsx工作薄第一个表格内容
import os import xlrd import pandas as pd #获取所有需要合并的工作簿路径,生成list def file_name(file_dir): list=[] for file in os.listdir(file_dir): if os.path.splitext(file)[1] == '.xlsx': #选取后缀为xlsx的文件 list.append(file) return list path = r'C:/Users/xx/Desktop' wks = file_name(path) data = [] #定义一个空list for i in range(len(wks)): read_xlsx = xlrd.open_workbook(path + '/' + wks[i]) sheet1 = read_xlsx.sheets()[0] #查看sheet1的数据 nrow = sheet1.nrows for j in range(0,nrow): #逐行打印 data.append(sheet1.row_values(j)) content= pd.DataFrame(data) #写入文件 #写入csv文件 #content.to_csv(path+'\py_union.xlsx', sep=',', header=True, index=False) #写入excel文件 content.to_excel(path+'\py_union.xlsx', header=False, index=False)
二、合并单个工作簿的所有表格内容(包括合并单元格)
import os import xlrd import pandas as pd data = [] path = r'C:/Users/xx/Desktop/测试题_0716.xlsx' xlsx = xlrd.open_workbook(path) for i in xlsx.sheet_names(): sheet = xlsx.sheet_by_name(i) nrow = sheet.nrows for j in range(0,nrow): data.append(sheet.row_values(j)) content= pd.DataFrame(data) content.to_excel('C:/Users/xx/Desktop/py_union.xlsx', header=False, index=False)
import os import pands as pd df=pd.read_excel() sheet_name = ['detail' + str(i) for i in range(1,4)] data_all = pd.DataFrame() for i in sheet_name: data = pd.read_excel('',encoding='gbk',sheet_name=i,dtype={'id':str}) data_all = pd.concat([data_all,data],axis=0,ignore_index=True) data_all.to_csv('csv',index=False,encoding='utf-8')
os.getcwd()获取当前路径 os.chdir('')修改当前路径
三、对合并单元格的研究
xlsx格式不支持xlrd的formatting=True
xlsx = xlrd.open_workbook(path)
table = xlsx.sheet_by_name(xlsx.sheet_names()[1])
merge = table.merged_cells
colspan={}
for item in merge:
colspan.update({(item[0],item[2]):table.cell_value(item[0],item[2])})
简单将工作表内的合并单元格取出
四、xlrd函数详解