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中if __name__ == "__main__"详细解释
Oct 21 Python
Python实现的飞速中文网小说下载脚本
Apr 23 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
Apr 20 Python
python3 判断列表是一个空列表的方法
May 04 Python
Python带动态参数功能的sqlite工具类
May 26 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
Django自定义列表 models字段显示方式
Apr 03 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
Appium+Python实现简单的自动化登录测试的实现
Jan 26 Python
通过Python把学姐照片做成拼图游戏
Feb 15 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
windows xp下安装pear
2006/12/02 PHP
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
php cli 小技巧
2013/06/03 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
joomla组件开发入门教程
2016/05/04 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
对numpy中array和asarray的区别详解
2018/04/17 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python 判断网络连通的实现方法
2018/04/22 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Python 元组操作总结
2019/09/18 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
军训自我鉴定
2014/01/22 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
行政管理毕业生自荐信
2014/02/24 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python