代码改变世界

python处理Excel - xlrd xlwr openpyxl

2019-04-15 08:30  Eagel  阅读(817)  评论(0编辑  收藏  举报

python处理Excel - xlrd xlwr openpyxl

1 xlrd和xlwt

Todo: 使用xlrd和xlwt读写Excel文件的方法和示例代码,待续。。。

参考链接:

Creating Microsoft Excel Spreadsheets with Python and xlwt:https://www.blog.pythonlibrary.org/2014/03/24/creating-microsoft-excel-spreadsheets-with-python-and-xlwt/

 

前期使用xlrd和xlwt读写excel表格,现写入excel时出现问题:

ValueError: row index was 65536, not allowed by .xls format

xlwt只能处理.xls格式的Excel,即2003之前的版本,Excel2003只能支持65535行数据,实际应用超出该范围,因此抛出错误[1]。

2 openpyxl

openpyxl: A Python library to read/write Excel 2010 xlsx/xlsm files

Sample code:

from openpyxl import Workbook
wb = Workbook()

# grab the active worksheet
ws = wb.active

# Data can be assigned directly to cells
ws['A1'] = 42

# Rows can also be appended
ws.append([1, 2, 3])

# Python types will automatically be converted
import datetime
ws['A2'] = datetime.datetime.now()

# Save the file
wb.save("sample.xlsx")

openpyxl tutorial: https://openpyxl.readthedocs.io/en/stable/tutorial.html

核心代码:

# Create a workbook

from openpyxl import Workbook
wb = Workbook()
ws = wb.active

# Playing with data
## Accessing one cell
ws['A4'] = 4
c = ws['A4']
d = ws.cell(row=4, column=2, value=10)
for x in range(1,101):
    for y in range(1,101):
        ws.cell(x, y, value)
## Accessing many cells
cell_range = ws['A1':'C2']

# Saving to a file
wb.save('balances.xlsx')


参考链接:

[1] ValueError: row index was 65536, not allowed by .xls format: https://stackoverflow.com/questions/45741670/valueerror-row-index-was-65536-not-allowed-by-xls-format