1. #!/usr/bin/env python
  2. __author__ = "lrtao2010"
  3. '''
  4. Excel文件转csv文件脚本
  5. 需要将该脚本直接放到要转换的Excel文件同级目录下
  6. 支持xlsx 和 xls 格式
  7. 在同级目录下生成名为excel_to_csv.csv 的文件,采用UTF-8编码
  8. '''
  9. import xlrd
  10. import csv
  11. import os
  12. #生成的csv文件名
  13. csv_file_name = 'excel_to_csv.csv'
  14. def get_excel_list():
  15. #获取Excel文件列表
  16. excel_file_list = []
  17. file_list = os.listdir(os.getcwd())
  18. for file_name in file_list:
  19. if file_name.endswith('xlsx') or file_name.endswith('xls'):
  20. excel_file_list.append(file_name)
  21. return excel_file_list
  22. def get_excel_header(excel_name_for_header):
  23. #获取表头,并将表头全部变为小写
  24. workbook = xlrd.open_workbook(excel_name_for_header)
  25. table = workbook.sheet_by_index(0)
  26. #row_value = table.row_values(0)
  27. row_value = [i.lower() for i in table.row_values(0)]
  28. return row_value
  29. def read_excel(excel_name):
  30. #读取Excel文件每一行内容到一个列表中
  31. workbook = xlrd.open_workbook(excel_name)
  32. table = workbook.sheet_by_index(0) #读取第一个sheet
  33. nrows = table.nrows
  34. ncols = table.ncols
  35. # 跳过表头,从第一行数据开始读
  36. for rows_read in range(1,nrows):
  37. #每行的所有单元格内容组成一个列表
  38. row_value = []
  39. for cols_read in range(ncols):
  40. #获取单元格数据类型
  41. ctype = table.cell(rows_read, cols_read).ctype
  42. #获取单元格数据
  43. nu_str = table.cell(rows_read, cols_read).value
  44. #判断返回类型
  45. # 0 empty,1 string, 2 number(都是浮点), 3 date, 4 boolean, 5 error
  46. #是2(浮点数)的要改为int
  47. if ctype == 2:
  48. nu_str = int(nu_str)
  49. row_value.append(nu_str)
  50. yield row_value
  51.  
  52. def xlsx_to_csv(csv_file_name,row_value):
  53. #生成csv文件
  54. with open(csv_file_name, 'a', encoding='utf-8',newline='') as f: #newline=''不加会多空行
  55. write = csv.writer(f)
  56. write.writerow(row_value)
  57. if __name__ == '__main__':
  58. #获取Excel列表
  59. excel_list = get_excel_list()
  60. #获取Excel表头并生成csv文件标题
  61. xlsx_to_csv(csv_file_name,get_excel_header(excel_list[0]))
  62. #生成csv数据内容
  63. for excel_name in excel_list:
  64. for row_value in read_excel(excel_name):
  65. xlsx_to_csv(csv_file_name,row_value)
  66. print('Excel文件转csv文件结束 ')

将Excel文件转为csv文件的python脚本的更多相关文章

  1. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  2. Python之xlsx文件与csv文件相互转换

    1 xlsx文件转csv文件 import xlrd import csv def xlsx_to_csv(): workbook = xlrd.open_workbook('1.xlsx') tab ...

  3. python预课04 列表,元祖,统计值计算示例,py文件转为EXE文件,爬虫初步学习

    列表,元组 #list l1 = [1, 2, 3, '高弟弟'] #定义一个列表 #增 l1.append("DSB") #最后增加"DSB"的元素 #删 l ...

  4. Spring-Batch将CSV文件转为XML文件

    1 介绍 用Spring Batch实现一个简单的需求,将csv文件转换成xml文件. csv文件如下:record.csv username, user_id, transaction_date, ...

  5. 使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件

    使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件 前期准备: 安装 python:https://www ...

  6. CVS 文件自动移 tag 的 Python 脚本

    CVS 文件自动移 tag 的 Python 脚本 背景 工作中使用的版本管理工具是 CVS,在两次发布中,如果修改的文件比较少,会选择用移 Tag 的方式来生成一个新 Tag 发布.文件比较少的情况 ...

  7. SQLite新建数据库及txt文件(CSV文件)导入

    1.安装准备: Windows系统环境: 安装:SQLiteExpert  及 官网的SQLite tool  我们要用到其中的SQLite.exe       地址:https://www.sqli ...

  8. js操作一般文件和csv文件

    js操作一般文件和csv文件 将文本文件读成字符串 <input type="file" id="upload"> document.getElem ...

  9. 【Github】如何下载csv文件/win10如何修改txt文件为csv文件

    csv文件:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号) 右键点击raw按钮,选择目标另存为,下载的是txt文件 win10如何 ...

随机推荐

  1. Hadoop实战:明星搜索指数统计,找出人气王

    项目介绍 本项目我们使用明星搜索指数数据,分别统计出搜索指数最高的男明星和女明星. 数据集 明星搜索指数数据集,如下图所示.猛戳此链接下载数据集 思路分析 基于项目的需求,我们通过以下几步完成: 1. ...

  2. 一、 Spring IOC 简介

    一 . 什么是IOC(Inversion of Control) IOC :控制反转,也称为依赖注入(DI).听起来有点云里雾里,他到底是个啥,为什么Spirng中最基础的就是它? 我们的项目其实都是 ...

  3. linux解压与参数介绍

    linux下 各种解压文件使用方法:https://www.jianshu.com/p/ca41f32420d6 解压参数详解:http://www.cnblogs.com/jyaray/archiv ...

  4. linux 解决 gvfsd-smb-browse CPU 100%占用

    原文地址:https://bugzilla.redhat.com/show_bug.cgi?id=1303300 1: sudo vim /etc/samba/smb.conf 2:定位到[globa ...

  5. vue $set用法

    需求,想给下面的数据添加一个hoby属性 {{data.hoby}}-->让这里的视图改变 data:{ name: "简书", age: '3', info: { cont ...

  6. 零基础逆向工程32_Win32_06_通用控件_VM_NOTIFY

    标准控件与可用控件 windows标准控件,标准控件总是可用的 Static Group Box Button Check Box Radio Button Edit ComboBox ListBox ...

  7. EBS应用重启

    重启系统应用 cd $ADMIN_SCRIPTS_HOME ./adstpall.sh apps/apps ./adstrtal.sh apps/apps 在重启应用时,可能会出现并发管理器未启动的情 ...

  8. Eucalyptus管理页面密码设置

    桉树环境什么的都已经是配置好了的,但是过了一段时间不用,也不知道密码是什么了,看着下面的页面也不知道如何进去,这里我们通过命令行的方式重置用户名和密码信息. 登陆clc所在机器,输入下命令: euar ...

  9. 报错:无法打开"cocos-ext.h" /添加第三方库

    参考原文:http://lin-jianlong.diandian.com/post/2012-11-05/40042951271 1.项目属性->配置属性->C/C++->常规-& ...

  10. ubuntu 16.4 安装配置IK6.3.2

    1. 从官网下载对应的解析版本 https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v6.3.2 2. 配置环境 安装mvn ...