Excel

使用Python的xlsxwrite模块,来生成Excle的xls和xlsx文件,设置xlsx文件的表格属性;读取Excle表格的内容。

最新的Excel表格文件一般是xlsx文件,可以方便的浏览和打印;怎么用Python来直接读取、保存xls文件,似乎也不慢。

惠州大亚湾旅行一天结束,在老虎洲Lucas、Robin、Alex、Bob 分别逮了8只,10只,9只,9只螃蟹;还有一些小虾,都在下边的列表中了;我们现在把这些数据写到一个Excel表格中。

我们先声明一个多维的元组;元组 tupCrabDatas 存储的游客小朋友的名字(Lucas, Robin, Alex)和对应的螃蟹数量;

#Lucas、Robin、Alex、Bob抓到的螃蟹数目;
tupCrabDatas = (['Lucas', 8], 
                ['Robin', 10],
                ['Alex', 9],
                ['Bob', 9])

有了这些数据,我们就可以写入到Excle文件中了。安装成功了之后,我们导入一下xlsxwriter模块,试一下是否成功。

'''
Welcome to LearnPython.NET

File Name: PExcel.py
Download from:https://www.learnpython.net/cn/python-code-samples.html
Author: LearnPython.Net
Editor: CoderChiu
'''

#引入依赖模块
import xlsxwriter
import datetime

执行结果:

>>> %Run PExcel.py

参考如何在用导入xlsxwriter库, 什么错误都没有提示,就表示是已经正确的导入了xlsxwrite模块 了;

生成excel文件

先用 xlsxwriter.Workbook 打开一个Excel文件;然后用 add_worksheet 添加一个Sheet页;

#生成一个Excel文件名(保护时间信息);
def formateFileName(strFileName, strExtension):
    nowBeginTime=datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')#现在
    fileName = strFileName +"-(" + nowBeginTime + ")" +strExtension
    return fileName

#Lucas、Robin、Alex、Bob抓到的螃蟹数目;
tupCrabDatas = (['Lucas', 8],
         ['Robin', 10],
         ['Alex', 9],
         ['Bob', 9])

#Excel 文件名;
strExcelFileName = formateFileName("Excel",".xlsx")
#print('\n',strExcelFileName)
#Sheet名;
strSheetName = "HuiZhou"

#创建Excel文件和Sheet;
xlsxWorkBook = xlsxwriter.Workbook(strExcelFileName)
xlsxWorkSheet = xlsxWorkBook.add_worksheet(strSheetName)

#Sheet表格的位置信息(行、列);
nRow, nCol =0,0

#把数据写入Excel表格;
for strName, nCrab in (tupCrabDatas):
    xlsxWorkSheet.write(nRow, nCol, strName)
    xlsxWorkSheet.write(nRow, nCol+1, nCrab)
    nRow = nRow + 1

#写入一个总计数据;
xlsxWorkSheet.write(nRow, nCol, "Total")
xlsxWorkSheet.write(nRow, nCol+1, "=SUM(B1:B4)")

#关闭Excel文件;
xlsxWorkBook.close()

执行结果:就是已经生成了一个Excel文件。

设置表格属性

如果想把最后一行设置为粗体;首先创建一个格式 Format object,写入的时候,把格式作为最后一个参数就可以了。

#创建格式
cellFormat = xlsxWorkBook.add_format({'bold': True})

#写入一个总计数据;
xlsxWorkSheet.write(nRow, nCol, "Total", cell_format)
xlsxWorkSheet.write(nRow, nCol+1, "=SUM(B1:B4)", cell_format)

执行结果:

表格的A5和B5,都标称粗体了。还可以设置字体()、数字格式、布局、颜色、表框、保护状态;

参考非常详细之文档https://xlsxwriter.readthedocs.io/format.html#format

现在我们来试一下,把Lucas他们在惠州捉到的小虾的数据,也写入到Excel文件中,快来试一试!

读取Excel文件

生成Excel图表

Last updated