如何用python把xlsx变为csv_python脚本实现xls(xlsx)转成csv_weixin_39934869的博客-程序员宅基地

技术标签: 如何用python把xlsx变为csv  

# xls_csv

把xls,xlsx格式的文档转换成csv格式

# 使用

python xls2csv.py

# -*- coding: utf-8 -*-

import xlrd

import xlwt

import sys

from datetime import date,datetime

def read_excel(filename):

workbook = xlrd.open_workbook(filename)

# print sheet2.name,sheet2.nrows,sheet2.ncols

sheet2 = workbook.sheet_by_index(0)

for row in xrange(0, sheet2.nrows):

rows = sheet2.row_values(row)

def _tostr(cell):

if type(u'') == type(cell):

return "\"%s\"" % cell.encode('utf8')

else:

return "\"%s\"" % str(cell)

print ','.join([_tostr(cell) for cell in rows ])

if __name__ == '__main__':

filename = sys.argv[1]

read_excel(filename)

再给大家分享一则代码

xlsx文件解析处理:openpyxl库 csv文件格式生成:csv

python#coding: utf-8

# 依赖openpyxl库:http://openpyxl.readthedocs.org/en/latest/

from openpyxl import Workbook

from openpyxl.compat import range

from openpyxl.cell import get_column_letter

from openpyxl import load_workbook

import csv

import os

import sys

def xlsx2csv(filename):

try:

xlsx_file_reader = load_workbook(filename=filename)

for sheet in xlsx_file_reader.get_sheet_names():

# 每个sheet输出到一个csv文件中,文件名用xlsx文件名和sheet名用'_'连接

csv_filename = '{xlsx}_{sheet}.csv'.format(

xlsx=os.path.splitext(filename.replace(' ', '_'))[0],

sheet=sheet.replace(' ', '_'))

csv_file = file(csv_filename, 'wb')

csv_file_writer = csv.writer(csv_file)

sheet_ranges = xlsx_file_reader[sheet]

for row in sheet_ranges.rows:

row_container = []

for cell in row:

if type(cell.value) == unicode:

row_container.append(cell.value.encode('utf-8'))

else:

row_container.append(str(cell.value))

csv_file_writer.writerow(row_container)

csv_file.close()

except Exception as e:

print(e)

if __name__ == '__main__':

if len(sys.argv) != 2:

print('usage: xlsx2csv ')

else:

xlsx2csv(sys.argv[1])

sys.exit(0)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39934869/article/details/110899971

智能推荐

SpringMVC.zzh_apcnx22400的博客-程序员宅基地

SpringMVC概述1、MVC:Model-View-Control框架性质的C 层要完成的主要工作:封装web 请求为一个数据对象、调用业务逻辑层来处理数据对象、 返回处理数据结果及相应的视图给用户 2、简要概述SpringMVCSpring C层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即是用了一种被称为Front Contro...

《网络通信程序设计课程设计》要求_xdong001的博客-程序员宅基地

课程目的:为了使学生进一步深入掌握网络通信程序设计知识,为了锻炼学生对网络通信程序设计知识的应用能力,同时提高学生在网络通信程序设计的水平,将相关知识应用于实际生活中的某些应用。 课程结构:课程设计由两方部分组成,分别是:1、程序设计应用使用网络通信方面的相关知识,设计并实现与某一应用相关的程序软件系统。2、相关文件写作针对程序设计的软件系统进行文档书写,描述出设计与开发的全过程以及其独特的部分。

jdk/vm环境变量配置_weixin_30511107的博客-程序员宅基地

jdk配置如下:JAVA_HOME D:\Java\jdk1.7CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jarPath ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bineclipse/myeclipse 默认VM参数设置:-Xms256m -Xmx512m -...

小学科技创新项目计算机,2018学年第一学期学生科技类获奖情况汇总_weixin_33305399的博客-程序员宅基地

原标题:2018学年第一学期学生科技类获奖情况汇总2018学年第一学期学生科技类获奖情况汇总第十届上海模型节1、黄仲廪同学荣获第十届上海模型节航空模型竞赛活动 小学组二等奖2、张睿泽同学荣获第十届上海模型节航空模型竞赛活动 小学组二等奖3、高奕萱同学荣获第十届上海模型节航空模型竞赛活动 小学组三等奖4、郭芫铭同学荣获第十届上海模型节航空模型竞赛活动 小学组三等奖5、李周毅同学荣获第十届上海模型节航...

MySQL中如何判断表是否存在_Sam.Shi的博客-程序员宅基地_mysql判断表是否存在

判断表是否存在的方法有很多,但是我觉得下面这种方法最实用:select COUNT(1) as count from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='dataterminaldb2' and TABLE_NAME='monitorcompanyevent3';主要是用在动态创建表的时候需要判断表是否存在。

font字体属性_全球霸蛮的博客-程序员宅基地_font属性

1、字体属性font-weight:字体粗细 bold(加粗)、bolder、light、lighter font-size:字体大小(20px,em(对比父级元素的大小),rem(基于16px标准像素的倍数,如1rem=1*16px))font-family:字体名称(微软雅黑)font-style:字形(italic字体为斜体)如:div{font-size:1rem;font-weight:...

随便推点

《强化学习周刊》第32期:上海交大&华为 | 可解释强化学习研究综述_智源社区的博客-程序员宅基地

No.32智源社区强化学习组强化学习研究观点资源活动关于周刊强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注。为帮助研究与工程人员了解该领域的相关进展和资讯,智源社...

Unity 打开项目闪退回Unity hub的解决方法,可以创建项目但不能打开_轮子王的博客-程序员宅基地

最近刚安装了unity,用的个人版本,可以创建项目,但之前创建过的项目都打不开,而且一旦关闭也无法打开,下面显示Unity lisence expiring soon,显示lisence 未激活的要先登录并激活lisence。解决方法,卸载unity hub,重新安装一个,在官网下载returning users版本的,顺便给个官网地址https://unity.com/或者https://s...

MYeclipse新建项目发布到SVN_yunliupan的博客-程序员宅基地

1、右键项目:team--》share2、新项目引入时易报错,先clean,尝试多此重新部署。

Windows线程同步_李小乾的博客-程序员宅基地

CriticalSectiontypedef RTL_CRITICAL_SECTION CRITICAL_SECTION;typedef struct _RTL_CRITICAL_SECTION { PRTL_CRITICAL_SECTION_DEBUG DebugInfo; // // The following three fields control ent...

vs 2008 工程添加引用lib静态库 以及 移植c/c++工程_锦瑟居士的博客-程序员宅基地

今天用到win32 PAI waveOutGetNumDevs要引用winmm.lib,添加方法两种:1.程序中添加代码: #pragma comment(lib,"winmm.lib")2.在解决方案管理器中,对工程单击右键,选择属性->配置属性->链接器->命令行->附加属性,在里面输入库名,点应用就可以了 代码:#include #include //

Selenium+Python 判断元素是否显示_安果移不动的博客-程序员宅基地

try: elm = waitByTime10.until(lambda x: x.find_element_by_name("captcha")) if not elm.is_displayed(): login(waitByTime10, waitByTime30) return except:...

推荐文章

热门文章

相关标签