十三、Python Excel操作

最近公司要把Excel导入到mysql数据库,查了几篇博客,这几项是非常有用的,记录下来。

一、安装xlrd模块

到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python
环境。

二、使用介绍

1、导入模块

import
xlrd

2、打开Excel文件读取数据

data
= xlrd.open_workbook(‘excelFile.xls‘)

3、使用技巧

获取一个工作表

table = data.sheets()[0]          #通过索引顺序获取

table = data.sheet_by_index(0) #通过索引顺序获取

table = data.sheet_by_name(u‘Sheet1‘)#通过名称获取

获取整行和整列的值(数组)

  

table.row_values(i)

table.col_values(i)

获取行数和列数

  

nrows = table.nrows

ncols = table.ncols

循环行列表数据

for i in range(nrows ):

print table.row_values(i)

单元格

cell_A1 = table.cell(0,0).value

cell_C4 = table.cell(2,3).value

使用行列索引

cell_A1 = table.row(0)[0].value

cell_A2 = table.col(1)[0].value

简单的写入

row = 0

col = 0

# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

ctype = 1 value = ‘单元格的值‘

xf = 0 # 扩展的格式化

table.put_cell(row, col, ctype, value, xf)

table.cell(0,0)  #单元格的值‘

table.cell(0,0).value #单元格的值‘

三、Demo代码

Demo比较简单,就是读取Excel数据。

 1 # -*- coding: utf-8 -*-  2 import  xdrlib ,sys 3 import xlrd 4 def open_excel(file= ‘file.xls‘): 5     try: 6         data = xlrd.open_workbook(file) 7         return data 8     except Exception,e: 9         print str(e)10 #根据索引获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_index:表的索引11 def excel_table_byindex(file= ‘file.xls‘,colnameindex=0,by_index=0):12     data = open_excel(file)13     table = data.sheets()[by_index]14     nrows = table.nrows #行数15     ncols = table.ncols #列数16     colnames =  table.row_values(colnameindex) #某一行数据 17     list =[]18     for rownum in range(1,nrows):19 20          row = table.row_values(rownum)21          if row:22              app = {}23              for i in range(len(colnames)):24                 app[colnames[i]] = row[i] 25              list.append(app)26     return list27 28 #根据名称获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_name:Sheet1名称29 def excel_table_byname(file= ‘file.xls‘,colnameindex=0,by_name=u‘Sheet1‘):30     data = open_excel(file)31     table = data.sheet_by_name(by_name)32     nrows = table.nrows #行数 33     colnames =  table.row_values(colnameindex) #某一行数据 34     list =[]35     for rownum in range(1,nrows):36          row = table.row_values(rownum)37          if row:38              app = {}39              for i in range(len(colnames)):40                 app[colnames[i]] = row[i]41              list.append(app)42     return list43 44 def main():45    tables = excel_table_byindex()46    for row in tables:47        print row48 49    tables = excel_table_byname()50    for row in tables:51        print row52 53 if __name__=="__main__":54     main()

然后就是日期的处理,日期类型的cell取出来是个数字,于是查询了下解决的办法。

基本的代码结构

  1. data = xlrd.open_workbook(EXCEL_PATH)
  2. table = data.sheet_by_index(0)
  3. lines = table.nrows
  4. cols = table.ncols
  5. print u‘The total line is %s, cols is %s‘%(lines, cols)

读取某个单元格:

  1. table.cell(x, y).value

x:行

y:列

行,列都是从0开始

*  时间类型的转换,把excel中时间转成python 时间(两种方式)

excel某个单元格   2014/7/8

  1. xlrd.xldate_as_tuple(table.cell(2,2).value, 0)   #转化为元组形式
  2. (2014, 7, 8, 0, 0, 0)
  3. xlrd.xldate.xldate_as_datetime(table.cell(2,2).value, 1)   #直接转化为datetime对象
  4. datetime.datetime(2018, 7, 9, 0, 0)
  5. table.cell(2,2).value   #没有转化
  6. 41828.0

源码查看:

  1. # @param xldate The Excel number
  2. # @param datemode 0: 1900-based, 1: 1904-based.
  3. xldate_as_tuple(xldate, datemode)

输入一个日期类型的单元格会返回一个时间结构组成的元组,可以根据这个元组组成时间类型

datemode 有2个选项基本我们都会使用1900为基础的时间戳

  1. ##
  2. # Convert an Excel date/time number into a datetime.datetime object.
  3. #
  4. # @param xldate The Excel number
  5. # @param datemode 0: 1900-based, 1: 1904-based.
  6. #
  7. # @return a datetime.datetime() object.
  8. #
  9. def xldate_as_datetime(xldate, datemode)

输入参数和上面的相同,但是返回值是一个datetime类型,就不需要在自己转换了

时间: 2024-08-28 15:27:51

十三、Python Excel操作的相关文章

python excel操作及网络编程

python excel操作 一:excel获取值操作 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls') 3.使用技巧 获取一个工作表 table = data.sheets()[0]          #通过索引顺序获取 table = data.sheet_by_index(0) #通过索引顺序获取 table = data.sheet_by_name(u'Sheet1')#通过名称获取

python excel操作总结

1.openpyxl包的导入 Dos命令行输入 pip install openpyxl==2.3.3 这里注意一下openpyxl包的版本问题 版本装的太高有很多api不支持了,所以笔者这里用的是2.3.3 验证是否安装成功:python交互模式下导入包 import openpyxl 2.一个简单的在excel中写入数据的操作 #未从文件系统生成真的excel文件,仅仅是实例化了一个Workbook实例 wb = Workbook()#workbook类似一个excel文件 # wb.act

python excel操作

python操作excel表格(xlrd/xlwt)转载:http://www.cnblogs.com/zhoujie/p/python18.html 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究"(用此一词让我觉得颇有成就感)之后,基本解决了日常所需.主要记录使用过程的常见问题及解决. python操作excel主要用到xlrd和xlwt这两个

RPA学习-Python Excel 操作模块 XlsxWriter 之插入图片 worksheet

艺赛旗RPA全面免费下载中点击下载http://www.i-search.com.cn/index.html?from=line27 在最近的项目上有遇到一个需求:需要将图片写到 execl 中.这里和大家分享一下. worksheet.insert_image()insert_image(row, col, image[, options])在工作表单元格中插入一张图片. 参数: row(int) - 单元格所在的行(索引从 0 开始计数)col(int) - 单元格所在的列(索引从 0 开始

Python Excel操作——xlrd、xlwd

读取 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workbook('excel.xls') 3.获取一个工作表 1 table = data.sheets()[0] #通过索引顺序获取 2 table = data.sheet_by_index(0) #通过索引顺序获取 3 table = data.sheet_by_name(u'Sheet1')#通过名称获取 4.获取整行和整列的值(返回数组) table.row_values(i

Python对Excel操作详解

  Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl  tcom包对excel操作. 关键字: Python.Excel.xlrd.xlwt.xlutils.TCl.tcom     1 Python简介 Python是一种面向对象.直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.

python excel读写操作

1.读操作 xlrd 下载地址:https://pypi.python.org/pypi/xlrd 使用代码 # encoding : utf-8 #设置编码方式 import xlrd #导入xlrd模块 #打开指定文件路径的excel文件 xlsfile = r'D:\AutoPlan\apisnew.xls' book = xlrd.open_workbook(xlsfile) #获得excel的book对象 #获取sheet对象,方法有2种: sheet_name=book.sheet_

Python之Excel操作

Python的Excel操作需要另外下载安装对应Python版本的xlrd和xlwt包,用于对Excel的读取和写入. 安装方法:直接解压后,在字符命令界面cd到setup.py的目录,执行命令"Python setup.py install"即可. xlrd(下面有些是方法,有些是属性,属性后面不加括号) 1. excel = xlrd.open_workbook(excel_path):打开指定路径的Excel文件,得到对应Excel的Excel对象(整个Excel文件的对象).

【Python】 更棒的Excel操作模块xlwings

[xlwings] 说到Python操作Excel,有好多模块都可以支持这个工作.比如最底层的win32模块不仅可以操作Excel,还可以操作其他一众windows的软件. 其他的比较熟悉的有xlrd,xlwt和xlutils这三个.分别负责Excel文件的读.写.读写转换工作.虽然一般情况下的Excel操作都可以通过这三个模块来完成,但是还是有很多不便的地方.比如单元格格式的写入和读取很麻烦,通过xlutils将一个Excel读取再写入到一个新文件中时格式也不会被一起复制过去. 另外最近我遇到