用python读写合并excel表格,让你的工作事半功倍。-----箴言-----
1. 内容简介:
在工作中,经常需要进行excel表的操作,例如,合并,数据统计等。
或者,将网络获取到的数据保存到excel表格中。这些功能,都可以使用python来完成。
本文介绍一种使用python脚本进行excel文件的读写操作。
2. python脚本代码:
功能:提供两个函数,作用分别是:
读取excel文件到list中;
写数据到excel表格中。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#excel_test.py
import os
import sys
import time
import xlrd
import xlwt
#读取excel数据到list中
def read_excel(abspath_file):
wb = xlrd.open_workbook(abspath_file,'r') #打开工作簿. #例如,abc.xls
nsheets = len(wb.sheets()) #获取工作簿的工作表数量
data = [] #用于存储工作簿中的所有数据
for n in range(nsheets): #获取工作簿中所有工作表中的数据
print("工作簿i=%d" %n)
sheet = wb.sheets()[n]
rows = sheet.nrows #获取工作表中数据的行数
for x in range(rows):
#print("x=%d" %x)
data.append(sheet.row_values(x)) #将每一行数据都添加到data中
print("data:")
print(data)
return data
#将list中的数据放到一个excel表中
#filename: 不包含路径
def write_to_excel(datalist,filename,sheet_name):
if len(datalist) == 0:
print("recordlist is none")
return
newWb = xlwt.Workbook() #创建新工作簿newWb
newSheet = newWb.add_sheet(sheet_name) #在newWb中创建新工作表sheet_name
datarows = len(datalist) #获取data的行数
datacols = len(datalist[0]) #获取data的列数
for x in range(datarows):
for y in range(datacols):
newSheet.write(x, y, datalist[x][y]) #将data中的所有数据写入新工作表中
newWb.save(filename)
#main
if __name__ == '__main__':
excel_file = 'abc.xls'
data_list = read_excel(excel_file)
file_name = 'new_desc_abc.xls'
sheet_name='sheet_data1'
write_to_excel(data_list,file_name,sheet_name)
abc.xls的内容如下:
有两个sheet,内容分别是:
代码运行的结果:
将两个Sheet中的内容合并,并写入到新的excel文件new_desc_abc.xls中:
aaaaa:excel_test user1$ ls
abc.xls excel_test.py
aaaaa:excel_test user1$ python3 excel_test.py
工作簿i=0
工作簿i=1
data:
[['唐代诗人:', '', '', ''], ['', '姓名', '性别', '生年'], ['', '李白', '男', 701.0], ['', '杜甫', '男', 712.0], ['', '王维', '男', 701.0], ['宋代诗人:', '', '', ''], ['', '姓名', '性别', '生年'], ['', '苏轼', '男', 1037.0], ['', '欧阳修', '男', 1007.0], ['', '王安石', '男', 1021.0]]
aaaaa:excel_test user1$ ls
abc.xls excel_test.py new_desc_abc.xls
新的excel表格new_desc_abc.xls内容为:
欢迎点赞,评论,转发 :)