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自动生成文章
Dec 25 Python
Python中处理字符串之isalpha()方法的使用
May 18 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
May 18 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
Python3列表List入门知识附实例
Feb 09 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
python上传时包含boundary时的解决方法
Apr 08 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
python自动化发送邮件实例讲解
Jan 04 Python
总结Python连接CS2000的详细步骤
Jun 23 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引用符&amp;的用法详细解析
2013/08/22 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
PHP fclose函数用法总结
2019/02/15 PHP
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
Python计时相关操作详解【time,datetime】
2017/05/26 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
python requests 测试代理ip是否生效
2018/07/25 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
互动出版网:专业书籍
2017/03/21 全球购物
联想C++笔试题
2012/06/13 面试题
网络宣传方案
2014/03/15 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
就职演讲稿范文
2014/05/19 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
目标责任书格式范文
2015/05/11 职场文书
加强党性修养心得体会
2016/01/21 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL