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通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
浅析使用Python操作文件
Jul 31 Python
小米5s微信跳一跳小程序python源码
Jan 08 Python
基于python实现学生管理系统
Oct 17 Python
python实现文本界面网络聊天室
Dec 12 Python
python的pytest框架之命令行参数详解(下)
Jun 27 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
Python通过正则库爬取淘宝商品信息代码实例
Mar 02 Python
Python yield生成器和return对比代码实例
Apr 20 Python
python中os包的用法
Jun 01 Python
pycharm 快速解决python代码冲突的问题
Jan 15 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
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
Python中PyQt5/PySide2的按钮控件使用实例
2019/08/17 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
会议邀请函范文
2014/01/09 职场文书
财产公证书样本
2014/04/04 职场文书
资料员岗位职责范本
2015/04/13 职场文书
孙振耀退休感言
2015/08/01 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
JS setTimeout与setInterval的区别
2022/04/20 Javascript
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript