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读取浮点数和读取文本文件示例
May 06 Python
Python实现发送email的几种常用方法
Aug 18 Python
python常用函数详解
Sep 13 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
Python中三元表达式的几种写法介绍
Mar 04 Python
selenium处理元素定位点击无效问题
Jun 12 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
用python-webdriver实现自动填表的示例代码
Jan 13 Python
Python机器学习之底层实现KNN
Jun 20 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
js控制框架刷新
2008/08/01 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
django中SMTP发送邮件配置详解
2019/07/19 Python
Python netmiko模块的使用
2020/02/14 Python
python 实现Harris角点检测算法
2020/12/11 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
军训教官感言
2014/03/02 职场文书
会计学习心得体会
2014/09/09 职场文书
泰山导游词
2015/02/02 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js