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 创建弹出式菜单的实现代码
Jul 11 Python
python数据批量写入ScrolledText的优化方法
Oct 11 Python
python图像处理入门(一)
Apr 04 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
Python实现生成密码字典的方法示例
Sep 02 Python
Django框架安装方法图文详解
Nov 04 Python
python 操作hive pyhs2方式
Dec 21 Python
python计算二维矩形IOU实例
Jan 18 Python
python怎么提高计算速度
Jun 11 Python
PyTorch-GPU加速实例
Jun 23 Python
Python turtle实现贪吃蛇游戏
Jun 18 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
VFP与其他应用程序的集成
2006/10/09 PHP
针对初学PHP者的疑难问答(2)
2006/10/09 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
php-fpm中max_children的配置
2019/03/15 PHP
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
AngularJS实时获取并显示密码的方法
2018/02/06 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
动态创建类实例代码
2009/10/07 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
python机器人行走步数问题的解决
2018/01/29 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
python遍历路径破解表单的示例
2020/11/21 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
自我鉴定的范文
2013/10/03 职场文书
大家检讨书5000字
2014/02/03 职场文书
元旦晚会感言
2014/03/12 职场文书
大学生作弊检讨书
2014/09/11 职场文书
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
python如何正确使用yield
2021/05/21 Python
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL