博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3 读、写Excel文件
阅读量:5239 次
发布时间:2019-06-14

本文共 2637 字,大约阅读时间需要 8 分钟。

首先,简单介绍一下EXECL中工作簿和工作表的区别:

工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET)。

  • 一个工作簿就是一个独立的文件
  • 一个工作簿里面可以有1个或者多个工作表
  • 工作簿是工作表的集合

1:使用python实现对Excel文件的读写,首先需要安装专用的模块(可以自己编写)xlrd,xlwt模块

2:读取excel数据(注意事项:sheet编号,行号,列号都是从索引0开始)

 

import xlrd# 设置路径path = 'E:/input.xlsx'# 打开execlworkbook = xlrd.open_workbook(path)# 输出Excel文件中所有sheet的名字print(workbook.sheet_names())# 根据sheet索引或者名称获取sheet内容Data_sheet = workbook.sheets()[0]  # 通过索引获取# Data_sheet = workbook.sheet_by_index(0)  # 通过索引获取# Data_sheet = workbook.sheet_by_name(u'名称')  # 通过名称获取print(Data_sheet.name)  # 获取sheet名称rowNum = Data_sheet.nrows  # sheet行数colNum = Data_sheet.ncols  # sheet列数# 获取所有单元格的内容list = []for i in range(rowNum):    rowlist = []    for j in range(colNum):        rowlist.append(Data_sheet.cell_value(i, j))    list.append(rowlist)# 输出所有单元格的内容for i in range(rowNum):    for j in range(colNum):        print(list[i][j], '\t\t', end="")    print()# 获取整行和整列的值(列表)rows = Data_sheet.row_values(0)  # 获取第一行内容cols = Data_sheet.col_values(1)  # 获取第二列内容# print (rows)# print (cols)# 获取单元格内容cell_A1 = Data_sheet.cell(0, 0).valuecell_B1 = Data_sheet.row(0)[1].value  # 使用行索引cell_C1 = Data_sheet.cell(0, 2).valuecell_D2 = Data_sheet.col(3)[1].value  # 使用列索引print(cell_A1, cell_B1, cell_C1, cell_D2)# 获取单元格内容的数据类型# ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 errorprint('cell(0,0)数据类型:', Data_sheet.cell(0, 0).ctype)print('cell(1,0)数据类型:', Data_sheet.cell(1, 0).ctype)print('cell(1,1)数据类型:', Data_sheet.cell(1, 1).ctype)print('cell(1,2)数据类型:', Data_sheet.cell(1, 2).ctype)# 获取单元格内容为日期的数据date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)print(type(date_value), date_value)print('%d:%d:%d' % (date_value[0:3]))

3:创建excel并写入数据

import xlwtdef set_style(name, height, bold=False):    style = xlwt.XFStyle()   # 初始化样式    font = xlwt.Font()       # 为样式创建字体    font.name = name    font.bold = bold    font.color_index = 4    font.height = height    style.font = font    return styledef write_excel(path):    # 创建工作簿    workbook = xlwt.Workbook(encoding='utf-8')    # 创建sheet    data_sheet = workbook.add_sheet('demo')    row0 = [u'字段名称', u'大致时段', 'CRNTI', 'CELL-ID']    row1 = [u'测试', '15:50:33-15:52:14', 22706, 4190202]    # 生成第一行和第二行    for i in range(len(row0)):        data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))        data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True))    # 保存文件    # workbook.save('demo.xls')    workbook.save(path)if __name__ == '__main__':    # 设置路径    path = 'E:/demo.xls'    write_excel(path)    print(u'创建demo.xls文件成功')

 

转载于:https://www.cnblogs.com/kongxiaoshuang/p/10014082.html

你可能感兴趣的文章
mybatis源代码分析:深入了解mybatis延迟加载机制
查看>>
Flask三剑客
查看>>
Hibernate-缓存
查看>>
【BZOJ4516】生成魔咒(后缀自动机)
查看>>
【BZOJ3052】【UOJ#58】【WC2013】糖果公园(树上莫队)
查看>>
荷兰国旗问题
查看>>
Process 启动参数问题
查看>>
提高PHP性能的10条建议
查看>>
我,不会吵,不会闹,心痛了用沉默代替
查看>>
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法...
查看>>
项目经理面试中可能遇到的问题(持续更新)
查看>>
【转】总结前端面试过程中最容易出现的问题
查看>>
Java- 简单了解线程 生产者与消费者问题(三)
查看>>
centos rancher 通过本机 docker images 新增container
查看>>
【原】PNG的使用技巧
查看>>
android studio 使用SVN 锁定文件,防止别人修改(基于Android studio 1.4 )
查看>>
4412 uboot启动分析
查看>>
熟用TableView
查看>>
PHP动态页面 生产静态页 方法二
查看>>
Java大数——a^b + b^a
查看>>