python读取excel数据

  excel是很常用的表格工具。不过,对程序员来说,这可不是件好事件。因为excel的数据既不像txt那样,随意一种语言、脚本,写个函数就能把数据读出来分析。也不像JSON这种开源的数据格式,有N多的开源库来读取。就算没有,知道数据格式,自己写个库也自己用不至于太难。

  要想读取excel的数据,大多使用ODBC数据库驱动或者COM的方式。对于ODBC,不同的语言有不同的实现,如java的JDBC。而对于COM方式,几乎是在后台运行一个excel程序,像new
Excel.Application(),相当于用自己的程序,去控制别人的程序。逻辑不是自己实现的,不能完全控制,总不大好。

  一开始我想用Qt通过ODBC驱动来读取。代码如下:


QSqlDatabase db = QSqlDatabase::addDatabase("QODBC","excelexport");
if( !db.isValid())
return; //! type error
QString dsn = "DRIVER={Microsoft Excel Driver (*.xls)};"
"DSN=‘‘;FIRSTROWHASNAMES=0;READONLY=FALSE;CREATE_DB=\"item.xls\";DBQ=item.xls";
db.setDatabaseName(dsn);
// open connection
if( !db.open())
{
qDebug()<<"error";
return; //! db error
}
qDebug()<<db.tables(QSql::AllTables);
qDebug()<<db.tables(QSql::Tables);
qDebug()<<db.tables(QSql::SystemTables);
qDebug()<<db.tables(QSql::Views);

测试文件item.xls里有item、award两个sheet,但是输出却如下:
("award$",
"item$", "item$_")

()

()

()

我一直没搞明白item$_这个表是怎么出现的。是我的参数不对,还是逻辑错误,还是本身Qt对Excel的数据库驱动有问题???知道的还请多多指教。

  Qt没做成功,后来找到了python。因为python有个开源(BSD License)的库xlrd(也许其他语言也有,只是我孤陋寡闻),专门读取excel数据。试了一下,感觉还很不错。

  下载python:https://www.python.org/

  下载xlrd:https://pypi.python.org/pypi/xlrd

  xlrd帮助文档:http://www.python-excel.org/

基本代码一例(在帮助文档里该有的都有了,别告诉我说看不懂):


from xlrd import open_workbook,cellname
book = open_workbook(‘odd.xls‘)
sheet = book.sheet_by_index(0)
print sheet.name
print sheet.nrows
print sheet.ncols
for row_index in range(sheet.nrows):
for col_index in range(sheet.ncols):
print cellname(row_index,col_index),‘-‘,
print sheet.cell(row_index,col_index).value

  其实在http://www.python-excel.org/上可以看到,xlrd、xlwt都属于xlutils,xlrd是读excel文件,xlwt是写excel文件。xlutils则是两都的合并。

时间: 2024-11-04 21:01:43

python读取excel数据的相关文章

python 读取excel数据到mysql

#!/usr/bin/env python# -*- coding: utf-8 -*-import MySQLdbimport osimport sysimport rereload(sys)sys.setdefaultencoding( "utf-8" )import timeimport datetimetoday=datetime.date.today()oneday=datetime.timedelta(days=1)to_yes=today-onedayyesterday=

python 读取excel数据插入到另外一个excel

#-*-coding:utf-8-*- import xlrd import xlwt def excel_copy(dir_from, dir_to, sheet_name): '''从一个excel写入到另外一个excel''' wb = xlrd.open_workbook(dir_from) # 选择sheet页 sheet1 = wb.sheet_by_index(0) # 打印每个sheet页的行数 # print("sheet1行数:%d" % sheet1.nrows)

Delphi中使用python脚本读取Excel数据

Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://seewind.blog.51cto.com/249547/46669前段时间,在正式项目中使用Python来读取Excel表格的数据.具体需求是,项目数据库中有些数据需要根据Excel表格里面的数据进行一些调整,功能应该比较简单.为了学习Pyth

【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ···························································································································

python读取excel文件(xrld模块)

Python读取excel文件 一.python  xlrd模块 安装 mac 下安装python  xlrd模块 http://www.crifan.com/python_read_excel_xls_file_xlrd/comment-page-1/ python setup.py install 在mac 下出现的错误是 http://stackoverflow.com/questions/18199853/error-could-not-create-library-python-2-7

Python 读Excel数据

一.读取Excel数据的步骤及方式: 1.打开Excel文件 data = xlrd.open_workbook(r'D:\Interface_test\test_data\测试用例.xlsx') 2.选取一个工作表进行读取 sheet = data.sheey_by_name('alldata') 3.整行的读取工作表中每一行的数据(sheet.row_value()返回的是列表形式) info = sheet.row_value(rownum) 该步骤中需要遍历循环Excel表中每一行数据:

python结合excel数据轻松实现接口自动化测试(一)

在刚刚进入测试行业的时候,最开始也是做功能测试,我想很多伙伴和我一样,觉得自动化测试都很高端,很神秘.迫不及待的想去学习作自动化测试. 以前比较常用数据库+python做自动化,后面发现excel个人觉得更加适合,刚开始自己做自动话测试的时候,很急切的想立刻搭建好整个框架,但心急吃不了热豆腐, 还是从基本的开始,这里介绍python结合excel数据实现单个接口自动化测试的步骤,理解了这个,后面就可以用到整个框架,封装成公用模块,批量读取数据,执行数据. 现在以我们公司的一登录接口为列,输入参数

利用xlrd模块实现Python读取Excel文档

# -*- coding: cp936 -*- #python读取excel import xlrd def main(): xls=xlrd.open_workbook("d:\\11.xls") try: mysheet=xls.sheet_by_name("Sheet1")#找到名为Sheet1的工作表.区分大小写 except: print("没有此工作表") return print("共有 %d 行, %d 列."

【提问答疑】Selenium + Python的Excel数据参数化

背景 最近一段时间微信公众号得到了众多网友的留言,微信编辑部的小编们欣喜若狂,在此感谢各位小伙伴们的厚爱.为了与大家进行互动交流,小编认真地查看每一条小伙伴们的留言,有问Fiddler抓包工具的问题,有问自动化selenium的问题,当然还有问小剪子去哪儿了,O(∩_∩)O~.小编决定这期的文章挑一个自动化方面大家都比较关心的问题进行解答: 问: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化? 答:可以使用xlrd读取Exce