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 相关文章推荐
Python通过for循环理解迭代器和生成器实例详解
Feb 16 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
django实现模型字段动态choice的操作
Apr 01 Python
Python如何实现爬取B站视频
May 20 Python
Virtualenv 搭建 Py项目运行环境的教程详解
Jun 22 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
Django DRF APIView源码运行流程详解
Aug 17 Python
如何用python插入独创性声明
Mar 31 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
python实现指定ip端口扫描方式
2019/12/17 Python
python中return的返回和执行实例
2019/12/24 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
2016年元旦主持词
2015/07/06 职场文书
办公室卫生管理制度
2015/08/04 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python