1.需要想使用python向excel中写入数据,那么首先需要安装xlwt(一个python 库),如果同时需要对excel进行读取操作,那么还需要xlrd库。有关库可以在python的官网上查找到,具体链接为:https://pypi.python.org/pypi
(1)需要注意的是,通常python管网上给出的库,大多数都是以.whl文件给出的;此类文件的安装需要使用pip指令,python3.6以上版本,在安装时如果选择全部安装,那么不需要我们人为再次对其进行安装。具体安装方法可以搜集网上的其他资料,这里不在细说。
2.使用xlwt进行excel文件的写入操作,python脚本为:
(1)实现excel写入数据的类及接口的定义
#!/usr/bin/env Python
# -*- coding: cp936 -*-
import xlwt
from xlrd import *
from datetime import datetime
import time
class ExcelReadAndWrite(object):
'class for Excel file read and write'
def __init__(self):
'An object created'
pass
def ExcelFileWrite(self,DATA):
'function used to creat excel file'
'''
#font define
font0=xlwt.Font()
font1=xlwt.Font()
#font setting
font0.name='Times New Roman'
font0.colour_index=2
font0.bold=True
font1.name='Times New Roman'
font1.colour_index=2
font1.bold=False
style0=xlwt.XFStyle()
style0.font=font0
style1=xlwt.XFStyle()
style1.font=font1
style1.num_format_str='D-MMM-YY'
'''
wb=xlwt.Workbook(encoding="utf-8")
ws=wb.add_sheet('A Test Sheet',cell_overwrite_ok=True)
for i,row in enumerate(DATA):
for j,clo in enumerate(row):
ws.write(i,j,clo)
wb.save('Data.xls')
(2)主函数
def main():
'main function'
ExcelOP=ExcelReadAndWrite()
DATA=((u'学号',u'姓名',u'年龄',u'性别',u'成绩'),
('20170001','zhang san','21','man','12'),
('20170002','li si','25','man','15'),
('20170003','wang guan','26','woman','100'),
)
#DATA=((1,2),(3,4),(5,6),(7,8),(9,10))
ExcelOP.ExcelFileWrite(DATA)
if __name__=='__main__':
main()
需要注意的是,在写入中文字时,一定要将中文字按“Unicode”字符编码方式进行写入。
3.有时候需要在已经存在的excel表格中新添加数据,同时新添加的数据不会影响原先存在的数据;或者,有时候我们需要每间隔一段时间向Excel表格中写入数据。要实现上述功能,需要借助xlutils库函数(主要是使用该库中的xlutils.copy),具体代码如下:
(1)导入需要的函数模块
from xlutils.copy import copy
(2)具体代码实例:
def AddDataToExitFile(self,serial,data):
''
rexcel = open_workbook("data_1.xls") # 用xlrd提供的方法读取一个excel文件
rows = rexcel.sheets()[0].nrows # 用wlrd提供的方法获得现在已有的行数
excel = copy(rexcel) # 用xlutils提供的copy方法将xlrd的对象转化为xlwt的对象
table = excel.get_sheet(0) # 用xlwt对象的方法获得要操作的sheet
table.write(rows,0,serial)
table.write(rows,1,data)
'''
for i,row in enumerate(DATA):
for j,clo in enumerate(row):
table.write(i+rows,j,clo)
'''
excel.save("data_1.xls") # xlwt对象的保存方法,这时便覆盖掉了原来的excel