3. xlsxwriter模块知识点讲解
xlsxwriter模块一般是和xlrd模块搭配使用的,
xlsxwriter:负责写入数据,
xlrd:负责读取数据。
接下来,我们分别对这两个库的常见用法,进行介绍。
1)如何创建一个“工作簿”?
import xlsxwriter # 这一步相当于创建了一个新的"工作簿"; # "demo.xlsx"文件不存在,表示新建"工作簿"; # "demo.xlsx"文件存在,表示新建"工作簿"覆盖原有的"工作簿"; workbook = xlsxwriter.Workbook("demo.xlsx") # close是将"工作簿"保存关闭,这一步必须有,否则创建的文件无法显示出来。 workbook.close()
2)如何添加一个“Sheet工作表”
我们知道,一个Excel文件就是一个Excel工作簿,而每一个工作簿中,又有很多的“Sheet工作表”。接下来,我们如何用代码实现这个操作呢?
import xlsxwriter # 这一步相当于创建了一个新的"工作簿"; # "demo.xlsx"文件不存在,表示新建"工作簿"; # "demo.xlsx"文件存在,表示新建"工作簿"覆盖原有的"工作簿"; workbook = xlsxwriter.Workbook("demo.xlsx") # close是将"工作簿"保存关闭,这一步必须有,否则创建的文件无法显示出来。 workbook.close()
效果如下:
3)如何向表中插入数据呢?
import xlsxwriter # 创建一个名为【demo.xlsx】工作簿; workbook = xlsxwriter.Workbook("demo.xlsx") # 创建一个名为【2018年销售量】工作表; worksheet = workbook.add_worksheet("2018年销售量") # 使用write_row方法,为【2018年销售量】工作表,添加一个表头; headings = ['产品','销量',"单价"] worksheet.write_row('A1',headings) # 使用write方法,在【2018年销售量】工作表中插入一条数据; # write语法格式:worksheet.write(行,列,数据) data = ["苹果",500,8.9] for i in range(len(headings)): worksheet.write(1,i,data[i]) workbook.close()
效果如下:
4. xlrd模块知识点讲解
这里有一个工作簿“test.xlsx”,该文件中有两个“Sheet工作表”,分别命名为“2018年销售量”、“2019年销售量”,如图所示。
1)如何打开一个“工作簿”?—>open_workbook()
# 这里所说的"打开"并不是实际意义上的打开,只是将该表加载到内存中打开。 # 我们并看不到"打开的这个效果" import xlrd file = r"G:\Jupyter\test.xlsx" xlrd.open_workbook(file)
结果如下:
<xlrd.book.Book at 0x29bb8e4eda0>
2)如何获取一个工作簿下,所有的“Sheet表”名?—>sheet_names()
import xlrd file = r"G:\Jupyter\test.xlsx" fh = xlrd.open_workbook(file) fh.sheet_names()
结果如下:
['2018年销售量', '2019年销售量']
3)如何获取所有“Sheet表”的对象列表?—>sheets()
import xlrd file = r"G:\Jupyter\test.xlsx" fh = xlrd.open_workbook(file) fh.sheets()
结果如下:
[<xlrd.sheet.Sheet at 0x29bb8f07a90>, <xlrd.sheet.Sheet at 0x29bb8ef1390>]
我们可以利用索引,获取每一个sheet表的对象,然后可以针对每一个对象,进行操作。
fh.sheets()[0] <xlrd.sheet.Sheet at 0x29bb8f07a90> fh.sheets()[1] <xlrd.sheet.Sheet at 0x29bb8ef1390>