笔者本地环境:win10 + python3.9

实现方式:

一、使用 xlrd、xlwt、xlutils 三个模块来操作 xls 或 csv 文件,优点是快,缺点是大数据写入时会报错,且实现方法代码量较大,这一部分主要是借鉴网友的代码,原文:https://www.jianshu.com/p/a8391a2b8c6c

二、使用 openpyxl 模块来操作 xlsx 文件,优点是功能齐全,一个模块搞定所有问题,缺点是只有按行写入时较快,否则比较耗时

废话不多说,直接上代码:

import xlrd
import xlwt
from xlutils.copy import copydef 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)  # 获取需要写入数据的行数if index <= 0: returnworkbook = 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):# 追加写入数据,注意是从i+rows_old行开始写入# 表头:"Title", "Date", "URL", "Text"new_worksheet.write(i + rows_old, 0, value[i].title)new_worksheet.write(i + rows_old, 1, value[i].date)new_worksheet.write(i + rows_old, 2, value[i].url)new_worksheet.write(i + rows_old, 3, value[i].text)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])  # 获取工作簿中所有表格中的的第一个表格for i in range(0, worksheet.nrows):for j in range(0, worksheet.ncols):print(worksheet.cell_value(i, j), "\t", end="")  # 逐行逐列读取数据print()# -------------------openpyxl方式--------------------------def create_xlsx_with_head(file_path, sheet_name, head_values=None):if file_path.endswith("xlsx"):dir_name = os.path.dirname(file_path)if not os.path.isdir(dir_name):os.makedirs(dir_name)# 新建文件和表格wb = openpyxl.Workbook()# 删除默认生成的sheetwb.remove(wb["Sheet"])sheet = wb.create_sheet(sheet_name, index=1)# 添加表头if head_values: sheet.append(head_values)wb.save(file_path)print("xlsx格式表格创建成功!")def write_xlsx_apend(file_path, values):if os.path.isfile(file_path) and file_path.endswith(".xlsx"):wb = openpyxl.load_workbook(file_path)# 获取workbook中第一个表格sheet = wb[wb.sheetnames[0]]for value in values:row = [value.title, value.date, value.url, value.text]sheet.append(row)wb.save(file_path)print("xlsx格式表格【追加】数据成功!")

测试数据及方法:


book_name_xls = 'D:\\spiderResult\\xls格式测试工作簿.xls'sheet_name_xls = 'xls格式测试表'value_title = [["姓名", "性别", "年龄", "城市", "职业"], ]value1 = [["张三", "男", "19", "杭州", "研发工程师"],["李四", "男", "22", "北京", "医生"],["王五", "女", "33", "珠海", "出租车司机"], ]value2 = [["Tom", "男", "21", "西安", "测试工程师"],["Jones", "女", "34", "上海", "产品经理"],["Cat", "女", "56", "上海", "教师"], ]if __name__ == '__main__':# 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)create_xlsx_with_head(r"D:\projects\Spider\demo.xlsx", "demosheet", value_title[0])write_xlsx_apend(r"D:\projects\Spider\demo.xlsx", value1)

——————————————————————————————
更多常用工具脚本、自动化脚本、封装方法积累,请移步:https://github.com/Joy917/ToolScripts

python3操作xls,xlsx文件方法汇总相关推荐

  1. python的openpyxl模块下载_python解析.xls/.xlsx文件–openpyxl模块(第三方)

    围观人数: 7 标签:book   set   tle   命令行   文件中   不能   charm   读取   pen 第一part:Excel文件的介绍 Microsoft Excel是Mi ...

  2. 【数据读写】csv文件与xls/xlsx文件

    目录 一.csv格式与xls/xlsx格式的区别 二.两种文件格式的读写操作 1.csv文件的读/写函数 csvread csvwrite 2.xls/xlsx文件的读/写函数 xlsread xls ...

  3. python封装方法有几种_Python打包exe文件方法汇总【4种】

    Python 打包 exe 文件方法汇总 Python 作为解释型语言,发布即公开源码, 虽然是提倡开源但是有些时候就是忍不住想打包成 exe ,不仅仅是为了对代码进 行加密,而是为了跨平台.防止有些 ...

  4. Python读取和操作Excel(.xlsx)文件

    Python读取和操作Excel(.xlsx)文件 使用openpyxl库来控制excel文件(即.xlsx为后缀的文件).这里介绍一下excel数据的结构. 打开excel文件后生成一个workbo ...

  5. pandas输出到excel_python读写excel等数据文件方法汇总

    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...

  6. 小白用python处理excel文件-python高手之路python处理excel文件(方法汇总)

    python3处理Excel文件的实际应用谢谢时光大盗把小编的时间偷走让小编没有时间去想你. 最近遇到个问题,使用python处理Excel文件.如何将表格中数据读取以后以而小编使用的是python3 ...

  7. python怎么读取txt文件并统计其字数-python读写excel等数据文件方法汇总

    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...

  8. csv文件转换成xlsx文件方法

    背景: 在实际工作中,我们经常会面对大批量的数据进行处理,其中将csv文件文件转换成xlsx文件就是其中的一项,废话少说,上家伙: 一般方法: 将csv文件另存为xlsx文件: 但实际中03版本(.x ...

  9. 好用的python打包软件_Python打包exe文件方法汇总【4种】

    title: Python打包exe文件方法 copyright: true top: 0 date: 2018-08-11 21:08:21 tags: 打包 categories: Python进 ...

最新文章

  1. ItemAdding实现数据验证--中文字段,properties.AfterProperties值为null的问题
  2. LVM学习之LVM基础
  3. 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
  4. 排序和去重--说说两个简单常用的算法
  5. Java技术:SpringBoot集成FreeMarker生成word文件
  6. Extjs 强大的WEB窗体开发库
  7. 中南大学计算机院转专业要求,机电工程学院2018级本科学生转专业的实施细则...
  8. 造轮子,常用JS处理HTML工具(HTMLUtils)
  9. java基础英语---第二十四天
  10. (专升本)PowerPoint(设置幻灯片的动画效果)
  11. POJ 1392 Ouroboros Snake
  12. Redis常用数据结构及其场景归纳
  13. 苹果手机php如何解压,在PHP中使用gzcompress;需要能够在iPhone上解压缩
  14. som神经网络聚类简单例子_神经网络学习及其模型
  15. Java--十大排序算法之归并排序
  16. 7-10 公路村村通 (30 分)(C语言)
  17. JSP实习实训管理系统myeclipse开发mysql数据库WEB结构java编程
  18. Cocos2d-x动漫联盟横版格斗游戏截图
  19. 小米手环4怎么使用_小米手环4的实际使用情况如何?
  20. 【小家Java】Java环境变量(Env)和系统属性(Property)详解---工具文章

热门文章

  1. ACP 学习-06-对象存储 OSS
  2. KP3114电源IC介绍--【其利天下】
  3. web前端JavaScript嵌入百度地图API的方法 最详细
  4. Git常见的术语有哪些?
  5. 电力系统matlab建模视频,基于Matlab的小型电力系统的建模与仿真实验1【精品毕设、无需降重】...
  6. 研一寒假MySQL数据库学习笔记(三)
  7. sencha 重置_ZK Framework与Sencha GXT的简要比较
  8. 从入门到放弃数据库——十分钟看懂数据库
  9. mysql中堆和栈_堆和栈 - 矮油~ - 博客园
  10. 【读论文(paper reading)】Hydrophobic and Hydrophilic Solid-Fluid Interaction