#!/usr/bin/env python
__author__ = "lrtao2010"
'''
Excel文件转csv文件脚本
需要将该脚本直接放到要转换的Excel文件同级目录下
支持xlsx 和 xls 格式
在同级目录下生成名为excel_to_csv.csv 的文件,采用UTF-8编码
'''
import xlrd
import csv
import os
#生成的csv文件名
csv_file_name = 'excel_to_csv.csv'
def get_excel_list():
#获取Excel文件列表
excel_file_list = []
file_list = os.listdir(os.getcwd())
for file_name in file_list:
if file_name.endswith('xlsx') or file_name.endswith('xls'):
excel_file_list.append(file_name)
return excel_file_list
def get_excel_header(excel_name_for_header):
#获取表头,并将表头全部变为小写
workbook = xlrd.open_workbook(excel_name_for_header)
table = workbook.sheet_by_index(0)
#row_value = table.row_values(0)
row_value = [i.lower() for i in table.row_values(0)]
return row_value
def read_excel(excel_name):
#读取Excel文件每一行内容到一个列表中
workbook = xlrd.open_workbook(excel_name)
table = workbook.sheet_by_index(0) #读取第一个sheet
nrows = table.nrows
ncols = table.ncols
# 跳过表头,从第一行数据开始读
for rows_read in range(1,nrows):
#每行的所有单元格内容组成一个列表
row_value = []
for cols_read in range(ncols):
#获取单元格数据类型
ctype = table.cell(rows_read, cols_read).ctype
#获取单元格数据
nu_str = table.cell(rows_read, cols_read).value
#判断返回类型
# 0 empty,1 string, 2 number(都是浮点), 3 date, 4 boolean, 5 error
#是2(浮点数)的要改为int
if ctype == 2:
nu_str = int(nu_str)
row_value.append(nu_str)
yield row_value def xlsx_to_csv(csv_file_name,row_value):
#生成csv文件
with open(csv_file_name, 'a', encoding='utf-8',newline='') as f: #newline=''不加会多空行
write = csv.writer(f)
write.writerow(row_value)
if __name__ == '__main__':
#获取Excel列表
excel_list = get_excel_list()
#获取Excel表头并生成csv文件标题
xlsx_to_csv(csv_file_name,get_excel_header(excel_list[0]))
#生成csv数据内容
for excel_name in excel_list:
for row_value in read_excel(excel_name):
xlsx_to_csv(csv_file_name,row_value)
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. Spark Mllib里的如何对两组数据用斯皮尔曼计算相关系数

    不多说,直接上干货! import org.apache.spark.mllib.stat.Statistics 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mlli ...

  2. placeholder-shown

    一般我们常见placeholder伪类选择器用来修改默认样式及文案,忽然发现placeholder-shown伪类选择器,比较官方的解释是 CSS伪类表示任何显示占位符文本的form元素. 简单来说就 ...

  3. (win10 64位)未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    在64位的系统上,默认不支持Microsoft.Jet.OLEDB.4.0的驱动程序,系统默认会提示未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”的错误.(网上看到的,先这么认 ...

  4. Photoshop之切图

    基本(繁琐)操作: 切JPG图(即带背景的图): 1.         选切片工具(另外,切片选择工具能选择切片和删除切片),切 2.         存储为Web所用格式(快捷键Ctrl + Shi ...

  5. blog 题解目录

    洛谷: 1.P2430 严酷的训练 2.CF784E Twisted Circuit 3.P1886 滑动窗口 4.P1090 合并果子 5.P1119 灾后重建 6.P1690 贪婪的Copy 7. ...

  6. 【Python】python2 str 编码检测

    python2 str 编码检测 import chardet s = 'sdffdfd' print type(s) print chardet.detect(s) s2 = '反反复复' prin ...

  7. Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V

    项目中各种缺包现象... Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V ...

  8. python3基础06(随机数的使用)

    #!/usr/bin/env python# -*- coding:utf-8 -*- import osimport randomimport string la=[0,1,2,3,4,5,6,7, ...

  9. Google Authenticator加强ssh安全

    一.安装依赖包 软件包可以在这个地址下载:https://pan.baidu.com/s/1r0CmwbtCfNiBqU9rh_TxtA yum -y install pam-devel tar jx ...

  10. linux 命令——48 watch (转)

    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个 ...