python
处理Excel
表格是遇到了一些问题xlwt
最多只能写入65536行数据, 所以在处理大批量数据的时候没法使用openpyxl
这个库, 在使用的时候一直报错, 看下面代码from openpyxl import Workbook
import datetime
wb = Workbook()
ws = wb.active
ws['A1'] = 42
ws.append([1,2,3])
ws['A2'] = datetime.datetime.now()
wb.save('test.xlsx')
File "src\lxml\serializer.pxi", line 1652, in lxml.etree._IncrementalFileWriter.write TypeError: got invalid input value of type
google
和baidu
搜索, 一篇文章提到了可能是包冲突的问题, 抱着试一试的心态, 没想到解决了lxml
这个包和openpyxl
起冲突, 解决办法, 先卸掉lxml
pip uninstall lxml
excel
的代码, 运行成功, 无错误!!! 困扰了我很长时间的问题得以解决!!!lxml
包经常要用到, 所以每次卸载掉再安装实在是麻烦, 所以我有下面的想法import pymysql
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://user:password@ip:port/database",encoding='utf-8')
sql = """SELECT catalog_1 as '目录一',catalog_2 as '目录二',catagory as '目录三',
region as '区域',year as '年份',data as '数据',unit as '单位' from table
where catalog_1 = "农业" limit 100
"""
df = pd.read_sql_query(sql, con=engine)
# writer = pd.ExcelWriter(r'C:\Users\Administrator\Desktop\test.xlsx')
# df.to_excel(writer)
# writer.save()
to_excel()
这个函数, 而是选择使用to_csv()
; 即可避免openpyxl
和lxml
的冲突df.to_csv(r'C:\Users\Administrator\Desktop\test.csv',index=False)
# 经过验证, 此种方法是行得通的
csv
文件用Excel
可以直接打开, 也可以另存为*.xlsx
文件openpyxl
版本是3.0.2
, 卸载此版本, 安装3.0.0
版本2020-3-16
, 经过测试, 此报错解除;