本帖最后由 a2556483812 于 2020-5-15 19:41 编辑
1、因为平时工作有大量的工作簿什么的需要合并,自己呢刚好学了些python,就利用python写了一个表格合并的程序分享给大家
2、可能是因为实力不足的原因,功能可能有不够完善的地方,多多谅解
3、希望有帮到大家的地方4、考虑到有些人不会封装,所以呢最下面有打包的exe,但是不知道为啥pyinstaller打包出来的exe,杀毒软件都会误报,下面附上python代码
[Python] 纯文本查看 复制代码 import os
import xlwt,xlrd,csv
x = os.listdir()
try:#没有这个表格就报错
x.remove('合并表格.xls')
print('---------------------')
except Exception as e:
print('---------------------')
y = []
def get_xls(ghj):#判断文件是否存在的,是的话就重新建一个表格
wqe = 0
f = "".join(ghj)[0:4]
if os.path.exists(ghj):
wqe += 1
return f+str(wqe)+".xls"
def read(xls):#将表格内容写入列表--修复不能读取其他工作表的功能
bm = xls.split('.')[0]
data = xlrd.open_workbook(xls)
book = data.sheet_names()
for xlss in book:
w = data.sheet_by_name(xlss)
for h in range(w.nrows):
b = w.row_values(h)
b.insert(0, bm)#写入工作簿名称
b.insert(1,xlss)#写入工作表名称
y.append(b)
bn = []
def gh(bn):#列表去重函数
news_ids = []
for id in bn:
if id not in news_ids:
news_ids.append(id)
return news_ids
def wir(font,wr):#列表内容写入表格
hi = 0
fontt = 0
workboob = xlwt.Workbook(encoding="utf-8")
worksheet = workboob.add_sheet("合并表格")
for i in range(font):#切分表格列表
for g in wr:#切分行
for wriw in range(0,len(g)):#切分列写入
worksheet.write(fontt, wriw, g[wriw])
fontt+=1#行数+1
break
workboob.save("合并表格.xls")#保存
def csv_open(csvv):#csv处理函数
csv_file = csv.reader(open(csvv, 'r'))#打开csv文件
# next(csv_file,None)
for i in csv_file:#循环输出内容
yi = list(i)#改变数值
yi.insert(0, csvv)
yi.insert(1, csvv)
y.append(yi)
for li in x:#遍历本文件夹所有xls/xlsx文件
if "xls" in li:#判断文件类型
read(li)#将文件内容写入进表格
print('已读取%s' % li)
if "csv" in li:#判断文件类型
csv_open(li)
print('已读取%s' % li)
wir(len(y),y)#行数写入
print('---------------------')
打包后文件太大,直接上链接:https://pan.baidu.com/s/1gz5_Uh3_OfSJvlAB9hN5zg 提取码:5rx0
5/15更新后:
修复工作表无法完全合并完成问题
增加csv文件合并内容
5/15更新后的文件:链接:https://pan.baidu.com/s/1SpLlYPzuMp6-t8rJgZ2CCg 提取码:qwn3
|