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抢票回家过年(代码简单)
Jan 21 Python
python学生信息管理系统
Mar 13 Python
Python实现决策树C4.5算法的示例
May 30 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
Django中文件上传和文件访问微项目的方法
Apr 27 Python
python切片作为占位符使用实例讲解
Feb 17 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 auth_http类库进行身份效验
2009/03/19 PHP
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
基于jquery的图片懒加载js
2010/06/30 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
Javascript基于OOP实实现探测器功能代码实例
2020/08/26 Javascript
Python高级用法总结
2018/05/26 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
文秘专业个人求职信
2013/12/22 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
单位病假条范文
2015/08/17 职场文书
2016年寒假家长评语
2015/10/10 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
解决numpy和torch数据类型转化的问题
2021/05/23 Python
Oracle 死锁的检测查询及处理
2021/09/25 Oracle
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server