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 相关文章推荐
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
python在windows下实现ping操作并接收返回信息的方法
Mar 20 Python
初步理解Python进程的信号通讯
Apr 09 Python
详解Python3中yield生成器的用法
Aug 20 Python
jupyter安装小结
Mar 13 Python
python抽取指定url页面的title方法
May 11 Python
python中的tcp示例详解
Dec 09 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
对python 中class与变量的使用方法详解
Jun 26 Python
python使用PIL剪切和拼接图片
Mar 23 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
python 对图片进行简单的处理
Jun 23 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
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
司机岗位职责
2013/11/15 职场文书
公司保密承诺书
2014/03/27 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP