首页 code
多个xlsx文件统计信息到一个文件
发布时间:2023年05月05日 评论数:抢沙发 阅读数:58
2022文件夹,里面有若干目录及子目录,每个目录里有若干文件,只需要看名为《XXX信息表.xlsx》的表格文件,表格格式统一,列名都一样,行有一些差异,查找需要统计的键名单元格,对应的键值就在同列的下一行单元格。把要统计的这些信息生成一个新表。
最后得到的xlsx每个单元格会有python列表的中括号,没找到办法去掉,只能生成xlsx表格后用excel带的查找替换功能把这些中括号都统一删除。
#!/bin/bash ### main.sh # 最终表格的第一行,列名 echo "变压器性质及功率,控制箱名称,控制箱地址码,电度计量表号,电表户号,用电单位" > result.csv echo ""> result.xlsx find ./2022 -type f |grep "基础信息表" > origin_files cat origin_files|while read oneline do cp "$oneline" tmp.xlsx python write_csv.py rm -f tmp.xlsx done python csv_to_xlsx.py
# coding=utf-8
#!/bin/python
### write_csv.py
import pandas as pd
import numpy as np
import csv
xlsx_name='tmp.xlsx'
def find_return(cols, rows, target_name):
if rows > 50 :
print("error "+target_name)
return
data = str(pd.read_excel(xlsx_name, usecols=cols, skiprows=rows, nrows=1, header=None))
if data.find(target_name) == -1 :
return find_return(cols, rows+1, target_name)
else :
target_data = pd.read_excel(xlsx_name, usecols=cols, skiprows=rows+1, nrows=1, header=None)
list_target_data = np.array(target_data).tolist()
return list_target_data
byq_power = find_return('A', 1, '变压器性质及功率')
kzx_name = find_return('C', 1, '控制箱名称')
kzx_addr = find_return('G', 1, '控制箱地址码')
biaohao = find_return('J', 1, '电度计量表号')
huhao = find_return('K', 1, '电表户号')
user_name = find_return('A', 15, '用电单位')
row_data=[kzx_name,byq_power,kzx_addr,biaohao,huhao,user_name]
print(row_data)
file = open('result.csv','a')
writer = csv.writer(file)
writer.writerow(row_data)
file.close()
#!/bin/python
### csv_to_xlsx.py
import pandas as pd
xlsx = pd.read_csv('result.csv')
xlsx.to_excel('result.xlsx',index=False)
本文作者:admin
文章标题: 多个xlsx文件统计信息到一个文件
本文地址:http://jiang.shuang.he.cn/blog/?post=61
版权声明:若无注明,本文皆为“”原创,转载请保留文章出处。
本文地址:http://jiang.shuang.he.cn/blog/?post=61
版权声明:若无注明,本文皆为“”原创,转载请保留文章出处。
相关文章