python 操作xls
写入文件
demo01
# 读取:xlrd
# 写入:xlwt
# 修改(追加写入):xlutils
import xlrd
import xlwt
from xlutils.copy import copy
def write_excel_xls(path, sheet_name, value):
index = len(value) # 获取需要写入数据的行数
workbook = xlwt.Workbook() # 新建一个工作簿
sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.write(i, j, value[i][j]) # 像表格中写入数据(对应的行和列)
workbook.save(path) # 保存工作簿
print("xls格式表格写入数据成功!")
def write_excel_xls_append(path, value):
index = len(value) # 获取需要写入数据的行数
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
rows_old = worksheet.nrows # 获取表格中已存在的数据的行数
new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
new_worksheet.write(i + rows_old, j, value[i][j]) # 追加写入数据,注意是从i+rows_old行开始写入
new_workbook.save(path) # 保存工作簿
print("xls格式表格【追加】写入数据成功!")
def read_excel_xls(path):
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格 ['xls格式测试表']
rowNumber = worksheet.nrows # 获取总行数据
colsNumber = worksheet.ncols # 获取总行数据
for i in range(0, rowNumber):
for j in range(0, colsNumber):
print(worksheet.cell_value(i, j), "\t", end="") # 逐行逐列读取数据 姓名 性别 年龄 城市 职业
print() # 换行
book_name_xls = 'xls格式测试工作簿.xls'
sheet_name_xls = 'xls格式测试表'
value_title = [["姓名", "性别", "年龄", "城市", "职业"], ]
value1 = [["张三", "男", "19", "杭州", "研发工程师"],
["李四", "男", "22", "北京", "医生"],
["王五", "女", "33", "珠海", "出租车司机"], ]
value2 = [["Tom", "男", "21", "西安", "测试工程师"],
["Jones", "女", "34", "上海", "产品经理"],
["Cat", "女", "56", "上海", "教师"], ]
write_excel_xls(book_name_xls, sheet_name_xls, value_title)
write_excel_xls_append(book_name_xls, value1)
write_excel_xls_append(book_name_xls, value2)
read_excel_xls(book_name_xls)
运行输出
xls格式表格写入数据成功!
xls格式表格【追加】写入数据成功!
xls格式表格【追加】写入数据成功!
姓名 性别 年龄 城市 职业
张三 男 19 杭州 研发工程师
李四 男 22 北京 医生
王五 女 33 珠海 出租车司机
Tom 男 21 西安 测试工程师
Jones 女 34 上海 产品经理
Cat 女 56 上海 教师
更多文档:
demo02
#encoding:utf-8
import json
import requests
import xlwt
def readFile():
with open("cart.json", "r",encoding='utf-8') as f:
results = ''
for data in f.readlines():
dataJson = json.loads(data)
results=dataJson['results']
titles = ["host","title","ip","domain","port","country","province","city","country_name","header","server","protocol","banner","cert","isp","as_number","as_organization","latitude","longitude","icp","fid","cname"]
print(results[0])
# 创建一个workbook 设置编码
workbook = xlwt.Workbook(encoding='utf-8')
# 创建一个worksheet
worksheet = workbook.add_sheet('My Worksheet')
# 写入excel
for i in range(len(titles)):
# print(titles[i])
# 参数对应 行, 列, 值
worksheet.write(0, i, label=titles[i])
j = 1
for i in range(len(results)):
item = results[i]
for k in range(len(item)):
print(j,k,item[k])
# 参数对应 行, 列, 值
worksheet.write(j, k, label=item[k])
j+=1
# 保存
workbook.save('Excel_test.xls')
readFile()
读取报错
pandas无法打开.xlsx文件,xlrd.biffh.XLRDError: Excel xlsx file; not supported
原因是最近xlrd更新到了2.0.1版本,只支持.xls文件。所以pandas.read_excel(‘xxx.xlsx’)会报错。
可以安装旧版xlrd,在cmd中运行:
pip uninstall xlrd
pip install xlrd==1.2.0
也可以用openpyxl代替xlrd打开.xlsx文件:
df=pandas.read_excel(‘data.xlsx’,engine=‘openpyxl’)
[Haima的博客]
http://www.cnblogs.com/haima/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2020-11-10 docker 安装 kafka+zookeeper,golang操作kafka
2020-11-10 VMware安装Centos7超详细过程(图文)
2019-11-10 安装echo框架
2019-11-10 gin框架博客实战教程2019web页面开发go语言实战博客开发