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实现分割文件及合并文件的方法
Jul 10 Python
总结用Pdb库调试Python的方式及常用的命令
Aug 18 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
Python根据文件名批量转移图片的方法
Oct 21 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
Python动态语言与鸭子类型详解
Jul 01 Python
python实现操作文件(文件夹)
Oct 31 Python
简单了解python元组tuple相关原理
Dec 02 Python
django修改models重建数据库的操作
Mar 31 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 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 MYSQL 数据备份类
2009/06/19 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php把数组值转换成键的方法
2015/07/13 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
页面中js执行顺序
2009/11/09 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
简单谈谈python中的多进程
2016/11/06 Python
django 将model转换为字典的方法示例
2018/10/16 Python
彻底理解Python中的yield关键字
2019/04/01 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
python dataframe NaN处理方式
2019/12/26 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
史上最全面的Java面试题汇总!
2015/02/03 面试题
项目施工员岗位职责
2014/03/09 职场文书
环境卫生倡议书
2014/08/29 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书