Python我的模块-利用python读写excel文件

用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内容为:


欢迎点赞,评论,转发 :)

猜你喜欢

转载自blog.csdn.net/liranke/article/details/114155730