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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
简析Python的闭包和装饰器
Feb 26 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
python实现微信远程控制电脑
Feb 22 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
django框架cookie和session用法实例详解
Dec 10 Python
python装饰器使用实例详解
Dec 14 Python
python sorted函数原理解析及练习
Feb 10 Python
Python %r和%s区别代码实例解析
Apr 03 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
May 07 Python
Python 中Operator模块的使用
Jan 30 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 多维数组排序(usort,uasort)
2010/06/30 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
php给数组赋值的实例方法
2019/09/26 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
小程序转发探索示例
2019/02/19 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
考博自荐信
2013/10/25 职场文书
酒店执行总经理岗位职责
2013/12/15 职场文书
军训学生自我鉴定
2014/02/12 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
合伙经营协议书范本
2014/09/13 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS