处理xlsx文件的方法,没找到处理xls的方法:
import unicodecsv as csv
import zipfile
from lxml import etree
import os
def write_result(address,result_lists):
with open(address, 'wb') as f:
writer = csv.writer(f,encoding='gbk')
writer.writerow(['excel_name','auther','create_time','last_modify_person','last_modify_time'])
writer.writerows(result_lists)
def get_excel_author(excel_file,name):
zf = zipfile.ZipFile(excel_file,'r')
doc = etree.fromstring(zf.read('docProps/core.xml'))
attr_nodes = doc.getchildren()
message_list = []
message_list.append(name)
message_list.append(attr_nodes[0].text)
message_list.append(attr_nodes[2].text)
message_list.append(attr_nodes[1].text)
message_list.append(attr_nodes[3].text)
return message_list
def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
# print()
return files # 当前路径下所有非目录子文件
if __name__ == '__main__':
print("使用方法")
print("1、将所有Excel放入一个文件夹中")
print("2、将文件夹地址输入,地址如下所示,一定注意斜杠的使用")
print("地址方式:C:/Users/hu.chaolin/Desktop/haha")
print("3、等待excel文件分析处理")
print("4、根据提示输入分析结果保存地址-其他路径文件夹")
print("5、根据提示输入结果文件名称,例子:excel文件属性分析结果")
print("结束:请到保存结果的路径查看文件结果,结果为csv文件")
address = input("请输入电脑中包含所有EXCEL表的文件夹:")
name_list = file_name(address)
result_lists = []
for name in name_list:
excel_address = address+"/"+name
result = get_excel_author(excel_address,name)
result_lists.append(result)
address2 = input("请输入需要保存结果的位置:")
text_name = input("请输入保存的文件名称:")
test_address = address2+"/"+text_name+".csv"
write_result(test_address,result_lists)
input("输入任意键结束")