python模块简单说明:

xlsxwriter:负责写入数据

xlrd:负责读取数据

xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org

本实例是刚写出来的,目前比较粗糙。

写这实例主要是结合平时工作内容,把手动操作改成自动化。

平时线上更新游戏版本号后,需要把版本号记录到一个excel文件中,每次更新都要修改,比较蛋疼,虽然版本号在数据库中也有存在,但还是要往excel记录一份。

这些代码目前只是测试代码,从原excel中读取所有内容,然后修改,再重成新的excel(其实我代码中并没有修改,只是把内容读出来,再写回去,唯一的就是做了些表格属性设定吧,其实我放到运维工具上后,就会结合平台,及数据库,去修改要修改的数据)。

  1. #coding=utf-8
  2. #/usr/bin/env python
  3. import xlsxwriter,xlrd
  4. import sys,os.path
  5. fname = 'zm6.xlsx'
  6. if not os.path.isfile(fname):
  7. print u'文件路径不存在'
  8. sys.exit()
  9. data = xlrd.open_workbook(fname)            # 打开fname文件
  10. data.sheet_names()                          # 获取xls文件中所有sheet的名称
  11. table = data.sheet_by_index(0)              # 通过索引获取xls文件第0个sheet
  12. nrows = table.nrows                         # 获取table工作表总行数
  13. ncols = table.ncols                         # 获取table工作表总列数
  14. workbook = xlsxwriter.Workbook('zm6.xlsx')  #创建一个excel文件
  15. worksheet = workbook.add_worksheet()        #创建一个工作表对象
  16. worksheet.set_column(0,ncols,22)            #设定列的宽度为22像素
  17. #border:边框,align:对齐方式,bg_color:背景颜色,font_size:字体大小,bold:字体加粗
  18. top = workbook.add_format({'border':1,'align':'center','bg_color':'cccccc','font_size':13,'bold':True})
  19. green = workbook.add_format({'border':1,'align':'center','bg_color':'green','font_size':12})
  20. yellow = workbook.add_format({'border':1,'bg_color':'yellow','font_size':12})
  21. red = workbook.add_format({'border':1,'align':'center','bg_color':'red','font_size':12})
  22. blank = workbook.add_format({'border':1})
  23. for i in xrange(nrows):
  24. worksheet.set_row(i,22)                 #设定第i行单元格属性,高度为22像素,行索引从0开始
  25. for j in  xrange(ncols):
  26. cell_value = table.cell_value(i,j,) #获取第i行中第j列的值
  27. if i == 0:
  28. format = top
  29. elif i == 3 or i == 6:
  30. format = blank
  31. else:
  32. if j == 0 or j == 2:
  33. format = yellow
  34. elif j == 1:
  35. format = red
  36. elif j == 3:
  37. format = green
  38. green.set_num_format('yyyy-mm-dd')  #设置时间格式
  39. worksheet.write(i,j,cell_value,format)      #把获取到的值写入文件对应的行列
  40. format.set_align('vcenter')                 #设置单元格垂直对齐
  41. workbook.close()

看完代码,再来看我修改之前,即原始的excel文件内容:

python xlsxwriter修改之前

读取内容后,新生成的excel文件内容:

python xlsxwriter修改之后

这些代码格式属性,是因为我特意根据原来的文件格式制定的,所以在代码中,能看到好几个if语句。

正因为这样,看到的前后图对比,很相像。

python模块:xlsxwriter和xlrd相结合读取、写入excel文件的更多相关文章

  1. python模块:xlsxwriter和xlrd相结合读取

    python模块简单说明: xlsxwriter:负责写入数据 xlrd:负责读取数据 xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org 本实例是刚写 ...

  2. POI读取/写入Excel文件

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

  3. Python xlrd xlwt 读取写入Excel.

    import xlrd import xlwt #读取 xlrd.Book.encoding = "gbk" wb = xlrd.open_workbook(filename='s ...

  4. Python中使用第三方库xlrd来写入Excel文件示例

    Python中使用第三方库xlrd来写入Excel文件示例 这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表 ...

  5. Python:将爬取的网页数据写入Excel文件中

    Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...

  6. python pandas写入excel文件

    pandas读取.写入csv数据非常方便,但是有时希望通过excel画个简单的图表看一下数据质量.变化趋势并保存,这时候csv格式的数据就略显不便,因此尝试直接将数据写入excel文件. pandas ...

  7. python模块之imghdr(识别不同格式的图片文件)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之imghdr(识别不同格式的图片文件) import imghdr '''>> ...

  8. python第三方库——xlrd和xlwt操作Excel文件学习

    python第三方库——xlrd和xlwt操作Excel文件学习 1安装: C:\Users\Lenovo>pip install xlwtCollecting xlwt  Downloadin ...

  9. java写入excel文件poi

    java写入excel文件 java写入excel文件poi,支持xlsx与xls,没有文件自动创建 package com.utils; import java.io.File; import ja ...

随机推荐

  1. TensorFlow(2)Softmax Regression

    Softmax Regression Chapter Basics generate random Tensors Three usual activation function in Neural ...

  2. [转]Angular: Hide Navbar Menu from Login page

    本文转自:https://loiane.com/2017/08/angular-hide-navbar-login-page/ In this article we will learn two ap ...

  3. 【转载】ASP.NET以Post方式抓取远程网页内容类似爬虫功能

    使用HttpWebRequest等Http相关类,可以在应用程序中或者网站中模拟浏览器发送Post请求,在请求带入相应的Post参数值,而后请求回远程网页信息.实现这一功能也很简单,主要是依靠Http ...

  4. java面试教程视频

    java.从入门到精通.第28讲-面试题评讲:http://www.iqiyi.com/w_19rsdc9mu9.html java面试题 1.面试的整体流程:http://www.iqiyi.com ...

  5. T-SQL基础(四)之集合运算

    三个运算符 T-SQL支持三个集合运算符:UNION.INTERSECT.EXCEPT. 集合运算符查询的一般形式如下: Query1 <set_operator> Query2 -- 这 ...

  6. 28.QT-QPainter介绍

    介绍 可以在QPaintDevice类上绘制各种图形 QPaintDevice类表示QPainter的绘图设备(画布) QpaintDevice子类有QImage.QOpenGLPaintDevice ...

  7. Java高并发--线程安全策略

    Java高并发--线程安全策略 主要是学习慕课网实战视频<Java并发编程入门与高并发面试>的笔记 不可变对象 发布不可变对象可保证线程安全. 实现不可变对象有哪些要注意的地方?比如JDK ...

  8. Docker 系列五(Docker Compose 项目).

    一.概念 Docker Compose 是官方编排项目之一,负责快速的部署分布式应用.它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML格式)来定义一种相关联的应用容器 ...

  9. 弹性盒模型flex

    一.flex flex是flexible box的缩写,意为“弹性布局”: 定义弹性布局 display:flex; box{ display:flex; } 二.基本定义 我只简单的说一下容器和项目 ...

  10. Spring之AOP的注解配置

    配置过程可以简单的分为3步: 1,业务类配置 在业务类前加入,将业务类交由Spring管理 @Component("s") 这个表示,这个业务类的Bean名字为 s . 2,将切点 ...