python3下使用openpyxl对xlsx进行写入操作

   笔者之前都是用xlwt进行excel文件写入的,直到今天要处理长语料的时候发生了报错:

Exception: string longer than 32767 characters.

    大意就是你要插入的数据太长,xlwt爱莫能助了。所以我们要换一下对长语料的处理方法。使用openpyxl包进行写入操作。参考链接Python使用openpyxl读写excel文件。pip安装openpyxl包的语句如下,还用豆瓣源加速下载。

pip install openpyxl -i https://pypi.douban.com/simple

     在上面的链接中我们发现openpyxl 可以用append方法将一行数据直接写入,而不用像xlwt中那样一点点循环单元位置进行写入。

from openpyxl import Workbook

#新建文件和表格
wb = Workbook()
sheet = wb.create_sheet('demo_sheet',index=0)

# 添加一行
row = [1 ,2, 3, 4, 5]
sheet.append(row)  # 这一步就可以做到将12345插入到一行中。

wb.save('demo.xlsx')  # 保存文件,注意以xlsx为文件扩展名

   很遗憾,openpyxl中只能在插入行的时候append快速插入。但是笔者要进行的操作是需要以列为单位进行插入的,所以要将这一行数据进行转置处理。然后再使用append方法进行大批量插入。

   综上,从插入效率上看,openpyxl的append要远胜于xlwt的循环单元格写入。可以当作以后读写excel文件的主要方法。

 

 

你可能感兴趣的:(Python探索笔记)