【Python开发】Excel的操作之——读取
2018-08-21 05:41:28来源:博客园 阅读 ()
主要思路参考这篇博客的内容,把地址贴上:
http://www.cnblogs.com/zhoujie/p/python18.html
下面贴上我自己的代码
读取excel数据的demo代码如下:
1 def read_excel_demo(): 2 # 打开文件 3 workbook = xlrd.open_workbook(r'C:\Users\wxz\Desktop\2018年信用卡花费(Kevin).xlsx') 4 # 获取所有sheet 5 print('打印所有sheet表名称:',workbook.sheet_names()) 6 sheet1_name = workbook.sheet_names()[0] 7 sheet2_name = workbook.sheet_names()[1] 8 # print(sheet1_name) 9 10 # 根据sheet索引或者名称获取sheet内容 11 sheet1 = workbook.sheet_by_index(0) 12 # TODO 问题 13 # sheet2 = workbook.sheet_by_name('sheet1_name') 14 # print(sheet2) 15 16 # sheet的名称,行数,列数 17 print(sheet1.name, sheet1.nrows, sheet1.ncols) 18 19 # 获取整行和整列的值(数组) 20 rows = sheet1.row_values(0) 21 cols = sheet1.col_values(0) 22 print(rows) 23 print(cols) 24 25 # 获取单元格内容 26 print(sheet1.cell(0, 0).value) 27 print(sheet1.cell_value(0, 0)) 28 print(sheet1.row(0)[0].value) 29 30 # 获取单元格内容的数据类型 ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error 31 print(sheet1.cell(0, 0).ctype) 32 33 # 获取日期 34 if sheet1.cell(1, 3).ctype == 3: 35 datetime = xlrd.xldate_as_datetime(sheet1.cell(1, 3).value, workbook.datemode) 36 print(datetime.date())
自己写的实际调用函数如下:
1 def read_excel(): 2 workbook = xlrd.open_workbook(r'C:\Users\wxz\Desktop\2018年信用卡花费(Kevin).xlsx') 3 sheet_name = workbook.sheet_names() # 获取所有sheet表名称 4 sheet_length = sheet_name.__len__() # 获取sheet表长度 5 print('已读取Excel所有sheet表名称:') 6 7 sheet_num = 0 8 for name in sheet_name: 9 print(str([sheet_num]) + ':' + name) 10 sheet_num = sheet_num + 1 11 12 while True: 13 sheet_index = int(input('\n请输入需要打印的sheet表序号:')) 14 if sheet_index < sheet_length: 15 print('\n正在打印《' + workbook.sheet_names()[sheet_index] + '》的内容……\n') 16 17 current_sheet = workbook.sheet_by_index(sheet_index) 18 nrows = current_sheet.nrows 19 for n in range(nrows): 20 print(current_sheet.row_values(n)) 21 22 print('\n共有' + str(nrows) + '行,已全部打印完毕\n') 23 break; 24 else: 25 print('错误提示:sheet表序号超出最大长度,请重新输入') 26 27 if __name__ == '__main__': 28 read_excel()
另外我采用的是bat批处理文件调用py文件,bat代码如下:
1 @echo off 2 3 echo 开始运行ExcelRead程序 4 echo\ 5 6 python G:\PycharmProjects\【180817】ExcelOperation\ExcelRead.py 7 8 pause
执行效果如下:
下一步计划需要把读出来的数据按表排列………(未完待续)
今日优化代码:
1 def read_excel(): 2 workbook = xlrd.open_workbook(r'C:\Users\wxz\Desktop\2018年信用卡花费(Kevin).xlsx') 3 sheet_name = workbook.sheet_names() # 获取所有sheet表名称 4 sheet_length = sheet_name.__len__() # 获取sheet表长度 5 print('已读取Excel所有sheet表名称:') 6 7 sheet_num = 0 8 for name in sheet_name: 9 print(str([sheet_num]) + ':' + name) 10 sheet_num = sheet_num + 1 11 12 while True: 13 sheet_index = int(input('\n请输入需要打印的sheet表序号:')) 14 if sheet_index < sheet_length: 15 print('\n正在打印《' + workbook.sheet_names()[sheet_index] + '》的内容……\n') 16 17 current_sheet = workbook.sheet_by_index(sheet_index) 18 nrows = current_sheet.nrows # 获取当前列表的行数 19 20 for n in range(nrows): 21 sheet_list = current_sheet.row_values(n) # 读取的excelsheet无法修改(只读),添加list转换 22 23 # 整理数据表,建立表头,之后增加 24 if n == 0: # 输出表头 25 table = PrettyTable(sheet_list) 26 else: # 输出内容 27 # 项目内容判断 28 if sheet_list[1] == "": 29 print('提示:第' + str(n) + '行未填入项目内容!') 30 31 # 金额内容判断 32 if sheet_list[2] == "": 33 print('提示:第' + str(n) + '行未填入金额!') 34 35 # 日期内容判断 36 if sheet_list[3] == "": 37 print('提示:第' + str(n) + '行未填入日期!') 38 else: 39 # 日期格式判断 40 if type(sheet_list[3] == float) and type(sheet_list[3]) != str: #时间转换 41 datetime = xlrd.xldate_as_datetime(current_sheet.cell(n,3).value,workbook.datemode) 42 sheet_list[3] = datetime.date() 43 else: 44 sheet_list[3] = '' 45 print('提示:第' + str(n) + '行未正确填入日期,取消显示!') 46 47 table.add_row(sheet_list) 48 49 print('') # 空一行 50 print(table) # 打印最终表格 51 52 print('\n共有' + str(nrows) + '行,已全部打印完毕\n') 53 break; 54 else: 55 print('错误提示:sheet表序号超出最大长度,请重新输入')
运行结果如下,比昨天的好看多了:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:面向对象(一)——类与对象介绍
下一篇:python字符串函数
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash