一、合并路径下所有后缀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')
pandas合并工作簿的工作表

 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函数详解

https://www.cnblogs.com/insane-Mr-Li/p/9092619.html

 

posted on 2020-09-02 11:00  喻解  阅读(638)  评论(0编辑  收藏  举报