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进行数据科学工作的简单入门教程
Apr 01 Python
python开发利器之ulipad的使用实践
Mar 16 Python
pandas修改DataFrame列名的方法
Apr 08 Python
Python应用领域和就业形势分析总结
May 14 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 Python
python线程join方法原理解析
Feb 11 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 Python
Python3基于print打印带颜色字符串
Jul 06 Python
Python3如何在服务器打印资产信息
Aug 27 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 Python
Python进行区间取值案例讲解
Aug 02 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
prototype 中文参数乱码解决方案
2009/11/09 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
python笔记(2)
2012/10/24 Python
用python代码做configure文件
2014/07/20 Python
sklearn+python:线性回归案例
2020/02/24 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
建筑项目策划书
2014/01/13 职场文书
大课间活动制度
2014/01/18 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
公务员政审材料
2014/12/23 职场文书
工作收入证明模板
2015/06/12 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
如何理解python接口自动化之logging日志模块
2021/06/15 Python
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS