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 相关文章推荐
详解Django中Request对象的相关用法
Jul 17 Python
Python实现求两个csv文件交集的方法
Sep 06 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
django的登录注册系统的示例代码
May 14 Python
python取数作为临时极大值(极小值)的方法
Oct 15 Python
python获取url的返回信息方法
Dec 17 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
python getpass实现密文实例详解
Sep 24 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 Python
python绘制云雨图raincloud plot
Aug 05 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
最小化数据传输――在客户端存储数据
2006/10/09 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
Python中__call__用法实例
2014/08/29 Python
python实现字符串和字典的转换
2018/09/29 Python
python游戏地图最短路径求解
2019/01/16 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
jupyter notebook实现显示行号
2020/04/13 Python
Python基于template实现字符串替换
2020/11/27 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
承认错误的检讨书
2014/01/30 职场文书
共产党员公开承诺书
2014/03/25 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
保洁员岗位职责
2015/02/04 职场文书
电力工程合作意向书
2015/05/11 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python