Python实现将Excel转换成xml的方法示例


Posted in Python onAugust 25, 2018

本文实例讲述了Python实现将Excel转换成xml的方法。分享给大家供大家参考,具体如下:

最近写了个小工具 用于excel转成xml

直接贴代码吧:

#coding=utf-8
import xlrd
import datetime
import time
import sys
import xml.dom.minidom
import os
print sys.getdefaultencoding()
reload(sys)       #就是这么坑爹,否则下面会报错
sys.setdefaultencoding('utf-8') #py默认是ascii。。要设成utf8
#excel中 数据格式如下:
# UID     第四天
# 1579880025 10:00-13:30
# 1677982825 10:00-12:00
# 1704410718 10:00-12:00
# 83713892  10:00-12:00
# 1546551561 10:00-12:00
# 1298790776 10:00-12:00
def open_excel(file):
  try:
    data = xlrd.open_workbook(file) #xlrd 操作excel的外部库
    return data
  except Exception, e:
    print str(e)
bgntm = '2017-05-18_'
def get_time_t(stime):
  stime = bgntm + stime + ':00'
  # return time.strptime(stime, '%Y-%m-%d %H:%M:%S')   #将时间转成时间戳
  return stime
def excel_table_byindex(file, colnnameindex=0, by_index=0):
  data = open_excel(file)     #打开excel
  table = data.sheets()[by_index]
  nrows = table.nrows
  ncols = table.ncols
  doc = xml.dom.minidom.Document()  #打开xml对象
  xmain = doc.createElement('main')
  doc.appendChild(xmain)
  for nrow in range(0, nrows):    #遍历每一行
    if nrow == 0:
      continue
    uid = table.cell(nrow, 0).value   #取值..第一列
    item = doc.createElement('%d'%uid) #生成节点
    stime = table.cell(nrow, 1).value  #第二列的值
    stime = stime.strip()    #去除空格..excel数据里 经常会无意有蛋疼的多余空格
    listT = stime.split('-')     #按 -分割字符串
    # sbgn = 'bgn = %d'%time.mktime(get_time_t(listT[0]))
    sbgn = 'bgn = '+get_time_t(listT[0])
    print 'uid=%d'%uid
    print 'bgn:'+sbgn
    send = 'end = '+get_time_t(listT[1])
    # send = 'end = %d'%time.mktime(get_time_t(listT[1]))
    print 'end:'+send
    exxbgn = doc.createTextNode(sbgn)  #纯文本节点
    exxend = doc.createTextNode(send)
    item.appendChild(exxbgn)      #加入树中
    item.appendChild(exxend)
    # ebgn = doc.createElement('bgn')
    # eend = doc.createElement('bgn')
    # item.appendChild(ebgn)
    # item.appendChild(eend)
    # item.setAttribute('bgn', '%d'%time.mktime(get_time_t(listT[0]))) #设置节点属性
    # item.setAttribute('end', '%d'%time.mktime(get_time_t(listT[1])))
    # for lt in listT:
      # print time.mktime(get_time_t(lt))
    xmain.appendChild(item)
  f = open('G:/testPro/py/exceltoxml/day.xml', 'w')    #xml文件输出路径
  f.write(doc.toprettyxml())
  f.close()
excel_table_byindex('G:/testPro/py/exceltoxml/day.xlsx')    #excel文件路径

关于xlrd 可以在cmd里pip install xlrd来安装

Python 相关文章推荐
Python 正则表达式入门(中级篇)
Dec 07 Python
python使用matplotlib绘制柱状图教程
Feb 08 Python
dataframe设置两个条件取值的实例
Apr 12 Python
python操作redis方法总结
Jun 06 Python
Flask框架信号用法实例分析
Jul 24 Python
Python自定义一个异常类的方法
Jun 27 Python
python中sort和sorted排序的实例方法
Aug 26 Python
python中如何使用insert函数
Jan 09 Python
django-csrf使用和禁用方式
Mar 13 Python
python实现学生成绩测评系统
Jun 22 Python
python缩进长度是否统一
Aug 02 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
Python实现的简单计算器功能详解
Aug 25 #Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 #Python
Python使用matplotlib绘制三维图形示例
Aug 25 #Python
Python实现的括号匹配判断功能示例
Aug 25 #Python
Django中使用Celery的教程详解
Aug 24 #Python
python tornado微信开发入门代码
Aug 24 #Python
python使用rpc框架gRPC的方法
Aug 24 #Python
You might like
无线电广播的开始
2002/01/30 无线电
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
php上传图片类及用法示例
2016/05/11 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
tensorflow 查看梯度方式
2020/02/04 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
html+css3实现的登录界面
2020/12/09 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
面试求职的个人自我评价
2013/11/16 职场文书
成考报名单位证明范本
2014/01/16 职场文书
出国英文推荐信
2014/05/10 职场文书
爱牙日活动总结
2014/08/29 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书