Python编程快速上手——Excel到CSV的转换程序案例分析


Posted in Python onFebruary 28, 2020

本文实例讲述了Python Excel到CSV的转换程序。分享给大家供大家参考,具体如下:

题目如下:

  • 利用第十二章的openpyxl模块,编程读取当前工作目录中的所有Excel文件,并输出为csv文件。
  • 一个Excel文件可能包含多个工作表,必须为每个表创建一个CSV文件。CSV文件的文件名应该是<Excel 文件名>_<表标题>.csv,其中< Excel 文件名 >是没有拓展名的Excel文件名,<表标题>是Worksheet对象的title变量中的字符串
  • 该程序包含许多嵌套的for循环。该程序框架看起来像这样:
for excelFile in os.listdir('.'):
   # skip non-xlsx files, load the workbook object
   for sheetname in wb.get_sheet_names():
      #Loop through every sheet in the workbook
      sheet = wb.get_sheet_by_name(sheetname)
      # create the csv filename from the Excel filename and sheet title
      # create the csv.writer object for this csv file
      #loop through every row in the sheet
      for rowNum in range(1, sheet.max_row + 1):
         rowData = [] #append each cell to this list
         # loop through each cell in the row
         for colNum in range (1, sheet.max_column + 1):
            #Append each cell's data to rowData
         # write the rowData list to CSV file
       csvFile.close()

htttp://nostarch.com/automatestuff/下载zip文件excelSpreadseets.zip,将这些电子表格压缩到程序所在目录中。可以使用这些文件来测试程序

思路如下:

  • 基本上按照题目给定的框架进行代码的编写
  • 对英文进行翻译,理解意思即可快速编写出程序

代码如下:

#! python3
import os, openpyxl, csv
for excelFile in os.listdir('.\\CSV'): #我将解压后的excel文件放入此文件夹
  # 筛选出excel文件,创建工作表对象
  if excelFile.endswith('.xlsx'):
    wb = openpyxl.load_workbook('.\\CSV\\'+ excelFile)
    for sheetName in wb.get_sheet_names():
      #依次遍历工作簿中的工作表
      sheet = wb.get_sheet_by_name(sheetName)
      #根据excel文件名和工作表名创建csv文件名
      #通过csv.writer创建csv file对象
      basename = excelFile[0:-5] #将excel文件名进行切割,去掉文件名后缀.xlsx
      File = open('{0}_{1}.csv'.format(basename,sheetName),'w') #新建csv file对象
      csvFile = csv.writer(File) #创建writer对象
      #csvFileWriter.writerow()
      #遍历表中每行
      for rowNum in range(1,sheet.max_row+1):
        rowData = [] #防止每个单元格内容的列表
        #遍历每行中的单元格
        for colNum in range(1,sheet.max_column + 1):
          #将每个单元格数据添加到rowData
          rowData.append(sheet.cell(row = rowNum,column = colNum).value)
        csvFile.writerow(rowData)
        #将rowData列表写入到csv file
      File.close()

运行结果:

Python编程快速上手——Excel到CSV的转换程序案例分析

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Django的数据模型访问多对多键值的方法
Jul 21 Python
Python基于PycURL实现POST的方法
Jul 25 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 Python
Python部署web开发程序的几种方法
May 05 Python
python如何为被装饰的函数保留元数据
Mar 21 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
Django项目uwsgi+Nginx保姆级部署教程实现
Apr 19 Python
Python实现自动签到脚本功能
Aug 20 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
python 三边测量定位的实现代码
Apr 22 Python
python对文件的操作方法汇总
Feb 28 #Python
最新2019Pycharm安装教程 亲测
Feb 28 #Python
Python发送手机动态验证码代码实例
Feb 28 #Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 #Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 #Python
Python进程Multiprocessing模块原理解析
Feb 28 #Python
python 实现多维数组(array)排序
Feb 28 #Python
You might like
php抓取https的内容的代码
2010/04/06 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
javascript 自定义事件初探
2009/08/21 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Python实现简单http服务器
2018/04/12 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
英国家用电器购物网站:Hughes
2018/02/23 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
Java面试题及答案
2012/09/08 面试题
中小学校园安全广播稿
2014/09/29 职场文书
求职信如何撰写?
2019/05/22 职场文书