前言

excel 后缀有2种格式, .xls 是从 Excel 97 到 Excel 2003 的默认文件格式,而 .xlsx 是 Excel 2007 及更高版本的默认文件格式。
.xlsx和.xls格式的主要区别在于,.xls格式单个工作表最多支持65536行,256列。
.xlsx格式最多支持1048576行,16384列。
此外就是,存储同样多的数据,.xlsx格式文件更小。基本就这两点区别。

处理excel

python 可以使用xlrd,xlrwt,openpyxl,xlwings,pandas 等库操作 Excel 。

环境安装

文档操作

性能对比

参考链接Python杀死Excel?众多模块哪家强

xlwt 操作

使用xlwt 操作 excel, 保存 .xls 后缀的文件

import xlwtdef csv_xls(filename, xlsname):f = open(filename, 'r', encoding='utf-8')xls = xlwt.Workbook()sheet = xls.add_sheet('sheet1', cell_overwrite_ok=True)x = 0for line in f:for i in range(len(line.split(','))):print(i)item = line.split(',')[i]sheet.write(x, i, item)x += 1f.close()xls.save(xlsname)if __name__ == "__main__":filename = "test1.csv"xlsname ="res1.xls"csv_xls(filename,xlsname)

xlwt 库仅支持.xls 后缀,不支持.xlsx 后缀的excel 文件

openpyxl 操作

使用openpyxl 库将 csv 转成 .xlsx格式。

from openpyxl import Workbook
import datetimedef csv_to_xlsx_pd(sourcePath:str,savePath:str,encode='utf-8'):"""将csv 转为 excel(.xlsx格式)如果不需要可以把计时相关代码删除Args:sourcePath:str 来源文件路径savePath:str 保存文件路径,需要包含保存的文件名,文件名需要是 xlsx 格式的encode='utf-8' 默认编码,可以改为需要的编码如gbk"""print('开始处理%s' % sourcePath)curr_time = datetime.datetime.now()print(curr_time)f = open(sourcePath, 'r', encoding=encode)# 创建一个workbook 设置编码workbook = Workbook()# 创建一个worksheetworksheet = workbook.activeworkbook.title = 'sheet'for line in f:row = line.split(',')worksheet.append(row)# if row[0].endswith('00'):    # 每一百行打印一次#     print(line, end="")workbook.save(savePath)print('处理完毕')curr_time2 = datetime.datetime.now()print(curr_time2-curr_time)if __name__ == '__main__':source = 'source.csv'save = 'result.xlsx'csv_to_xlsx_pd(sourcePath=source, savePath=save, encode='utf-8')

数据量小于1w操作会比较快,数据量大于50w, workbook.save() 保持数据会很慢,有时候需要20-30分钟才能保存完成。

使用 pandas 转d

使用 pandas 将csv 转xlsx

import pandas as pddef csv_to_xlsx_pd():csv = pd.read_csv('source.csv', encoding='utf-8')csv.to_excel('result.xlsx', sheet_name='data')if __name__ == '__main__':csv_to_xlsx_pd()

数据量小于1w操作会比较快,数据量大于50w,保存会很慢。

python 将 csv转excel (.xls和.xlsx)的几种方式相关推荐

  1. python pandas合并多个excel_python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件)...

    # python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件) import tkinter as tk from tkinter import filedial ...

  2. c#如何生成Excel(.xls和.xlsx)文件

    2019独角兽企业重金招聘Python工程师标准>>> 在工作中经常遇到需要用c#生成Excel文件(.xls和.xlsx格式),完全免费开源的ExcelLibrary是一个不错的选 ...

  3. python用于导入模块或模块中的对象_在 Python 中导入模块中的对象有哪几种方式? (5.0分)_学小易找答案...

    [判断题]尽管可以使用 import 语句一次导入任意多个标准库或扩展库,但是仍建议每次只导入一个标准库或扩展库. (2.0分) [填空题]表达式 int(str(34)) == 34 的值为 ___ ...

  4. java poi对excel xls和xlsx格式文件导入导出

    一)poi简介 Apache POI项目是用于基于Microsoft的OLE 2复合文档格式开发文件格式的纯Java端口的主项目. 官网POI API地址:https://poi.apache.org ...

  5. C# 用NPOI将DataGridView中显示的数据导出到Excel(.xls和.xlsx格式)

    文章目录 前言 实现步骤 一.安装NPOI 二.创建类 三.调用 前言 本地数据库表中有46785条数据,测试正常 初次运行程序第一次导出,用时在4-5s左右:此后再导出用时在2-3s左右:可能与缓存 ...

  6. 用Python批量实现多Excel多Sheet合并的4种方法

    大家好,我是崔艳飞.前两天给大家分享了Python自动化文章:手把手教你利用Python轻松拆分Excel为多个CSV文件,而后在Python进阶交流群里边有读者遇到一个问题,他有很多个Excel表格 ...

  7. 使用apache-poi生成excel文件与同步请求三种方式与文件下载

    使用apache-poi生成excel文件 a)添加依赖: <!-- poi依赖--><dependency><groupId>org.apache.poi< ...

  8. Python与用户的交互 ,格式化输出的三种方式

    目录 Python与用户的交互 1.为什么交互? 格式化输出的三种方式 1.占位符 format格式化 f-String格式化 基本运算符 流程控制之if判断 1.语法 1.1 if 1.2 if.. ...

  9. python 调用js类_Python 调用 JS 常用的4种方式,带你学会如何解密

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于AirPython ,作者星安果 1. 前言 日常 Web 端爬虫过 ...

最新文章

  1. Ubuntu10.04系统调试TQ2440开发板之一《Ubuntu下搭建TQ2440的程序下载环境》
  2. opengl加载显示3D模型HMP类型文件
  3. Nginx的Gzip模块配置指令(一)
  4. 期货与期权(part2)--远期合约
  5. 试图安装客户出现SSR问题的Spartacus Storefront时遇到的错误消息
  6. Python学习 Week2 part1
  7. android 自动读取ecxel_android 读取excel表格数据,并存入数据库
  8. 递归 解决汉诺塔问题(栈应用)
  9. 平方方程应该都有整数解
  10. html颜色代码表,html中黄色代码是什么
  11. ISP对pptpd及1723端口的动态管控初探
  12. PHP基于微信小程序的医院预约挂号系统 uniapp 小程序
  13. linux哪个版本支持tipc,TIPC协议和实现解析
  14. html document自动加载,document.html
  15. 视频教程-Python开发全教程-Python
  16. PPT如何查看并修改幻灯片大小
  17. 机器学习 day5 day6 分类问题实战:判断是否为羊毛党
  18. css 右侧高度自适应,左侧高度与右侧保持一致
  19. 显卡GTX295到了
  20. 跟着这份清理教程,帮你的 Mac 腾出更多储存空间

热门文章

  1. 行为型模式----golang实现
  2. 博通wifi驱动详解(四)
  3. 2021-07-11
  4. 【数据分析】数据分析需要掌握的统计学理论基础知识
  5. 常见色域基础知识与色域转换公式(YUV/YCbCr/YIQ/RGB/R‘G‘B‘/CMYK)
  6. 深入理解Java异常机制
  7. K8S环境部署jaeger-all-in-one
  8. 景深决定照相机什么特性_2017年摄影专业单独考试试题库——简答
  9. 百度飞浆之PaddleHub视频移动人脸识别
  10. 用树莓派(等)为 USB Midi 键盘增添连接方式