1 .xls文件 用xlrd和xlwt两个库,一个读一个写,最大行列是65536行,256列

2 .xlsx文件需用openpyxl库读写,最大行列是1048576行,16384列(采取的是xml存储),pandas读.xlsx需低版本xlrd支持(1.2.0) 或用openpyxl引擎:

data = pd.read_excel('filepath.xlsx', engine='openpyxl')

3 关于表单sheet

1)建立文件及表单

from openpyxl import Workbookbook = Workbook() #建立一个excel文件,默认包含一个sheet表单,默认名就是"sheet"
sht = book.active  #设sheet表单为活动表单,在程序中可起名为sht,(active有啥用待学习)

或者用book.create_sheet() 命令建立表单

2)表单操作

(1).新建sheet:

sht1=book.create_sheet() #新建立一个sheet页,括号为空时默认表单的标签名称为"sheet1"继续建立名称顺延sheet2等。在程序中用变量名sht1等表示引用表单,在excel文件中对应的表单标签名是"sheet1",变量名和标签名可以统一也可以不统一随意,但注意这是两个概念

(2).sheet页改标签名:

sht.title = "表一"  #把默认的“sheet”表单标签的名称改名为“表一”
sht1.title = "表二" #把新建的“sheet1”表单标签的名称改名为“表二”

(3).读取文件表单

from openpyxl import load_workbookwb = load_workbook(namefile_path)  #读取excel文件
print(wb.get_sheet_names()) #获得excel文件中所有sheet页标签的名称
sheet=wb['sheet1']  #获取excell文件中的标签名为sheet1的表单
a=sheet[a1.value] #把sheet1页面a1格的值赋给a(一定要用.value取得值,否则只取得位置)
for row in sheet.rows:  #按行读取sheet页内容
for row in sheet.columns: #按列读取sheet页内容

(4)表单页在excel文件中的排序:

创建表单时可指定表单名称及排序

book.create_sheet('sheet新',2)  #创建文件中排第三张名称为“sheet新”的表单

表单顺序按0、1、2、3这样排,也可以为负值,表示倒数第几张  -3,-2,-1

(5)表单追加数据

可以把一个列表或元组数据追加成表单新的一行,例:

a=[1,2,3,4,5,6,7]
sheet.append(a)   #sheet表单追加一行数据a,列表的每个值占横向一个单元格

(6)表单最大行数、列数 

cols = sheet.max_column  #最大列数
rows = sheet.max_row  #最大行数

 (7)选择一行或一列:

row=sheet[2]    #方括号里是行序号数字,没有引号

col=sheet['b']   #方括号里是列序号字母,带引号

或者:

row=sheet.rows[1]

col=sheet.columns[1]

然后用for循环进行单元格操作:

#选取sheet表单第三行,依次查看每个单元格的值
for r in sheet[3]:print(r.value)

(8)选择指定的区域:

# 按行获取单元格,min_col:
rows = sheet.iter_rows(min_col=1, max_col=2, min_row=2, max_row=20)
# 读取表格的1,2列,min_row:从第二行开始读到第20行,所有内容
# 打印读取内容
for row in rows:for cell in row:print(cell.value)
# 读取指定的行,先用列表推导式生成包含每一列中所有单元格的元组的列表,再对列表取索引
one_rows = [val for val in sheet.rows][0]   #获取第一行
# 打印读取内容
for cel in one_rows:print(cel.value)# 按列获取单元格,min_col:
cols = sheet.iter_cols(min_col=1, max_col=2, min_row=2, max_row=20)
# 读取表格的1,2列,min_row:从第二行开始读到第20行,所有内容
# 打印读取内容
for col in cols:for cell in col:print(cell.value)
# 读取指定列,先用列表推导式生成包含每一列中所有单元格的元组的列表,再对列表取索引
one_cols = [val for val in sheet.columns][0]    # 获取第1列
# 打印读取内容
for col in one_cols:print(col.value)

(9)删除行或列 

sheet.delete_cols(1)    #删除第一列
sheet.delete_rows(2)    #删除第二行

3)单元格操作

(1)单元格赋值操作

sht[a1]="名称" #把sheet表单的a1单元格赋值为“名称”,可以直接这样赋值
c=sht[a1]

或根据行列序号赋值    cell命令:

d=sht.cell(row=1,column=2)

用cell时不能直接赋值,需要配合用value命令:

sht.cell(1,2).value=33   #给b1单元格赋值33

(2)单元格行高列宽设置

from openpyxl.styles import *

行高:参数没有引号

row2 = sheet.row_dimensions[2]
row2.height = 30

列宽 :参数有引号

col = sheet.column_dimensions['a']
col.width = 16

 (3)单元格合并

合并后的单元格若要赋值,其位置是原表最左上单元格的坐标

sheet.merge_cells("A1:f1")

 (4)单元格字体样式设置.font

不需要的参数可以不写,如只设置字体大小就写size=xx

sheet.cell(1, 1).font = Font(name='微软雅黑',size=14,color=Color(index=0),b=0,i=0)
# size   sz  字体大小
# b bold  是否粗体
# i italic  是否斜体
# name family  字体样式颜色表:
Color(index=0) # 根据索引进行填充
Color(rgb='00000000') # 根据rgb值进行填充颜色rgb值和索引:'00000000', '00FFFFFF', '00FF0000', '0000FF00', '000000FF', #0-4'00FFFF00', '00FF00FF', '0000FFFF', '00000000', '00FFFFFF', #5-9'00FF0000', '0000FF00', '000000FF', '00FFFF00', '00FF00FF', #10-14'0000FFFF', '00800000', '00008000', '00000080', '00808000', #15-19'00800080', '00008080', '00C0C0C0', '00808080', '009999FF', #20-24'00993366', '00FFFFCC', '00CCFFFF', '00660066', '00FF8080', #25-29'000066CC', '00CCCCFF', '00000080', '00FF00FF', '00FFFF00', #30-34'0000FFFF', '00800080', '00800000', '00008080', '000000FF', #35-39'0000CCFF', '00CCFFFF', '00CCFFCC', '00FFFF99', '0099CCFF', #40-44'00FF99CC', '00CC99FF', '00FFCC99', '003366FF', '0033CCCC', #45-49'0099CC00', '00FFCC00', '00FF9900', '00FF6600', '00666699', #50-54'00969696', '00003366', '00339966', '00003300', '00333300', #55-59'00993300', '00993366', '00333399', '00333333',             #60-63常用颜色索引:
color=Color(index=0)        #黑色BLACK
color=Color(index=1)        #白色WHITE
color=Color(index=2)        #红色RED
color=Color(index=3)        #绿色GREEN
color=Color(index=4)        #蓝色BLUE
color=Color(index=5)        #黄色YELLOW
color=Color(index=8)        #深红DARKRED
color=Color(index=9)        #深绿DARKGREEN
color=Color(index=12)       #深蓝DARKBLUE
color=Color(index=19)       #深黄DARKYELLOW

 (5)单元格对齐设置.alignment

horizontal 水平对齐    vertical垂直对齐   wraptext自动换行

sheet.cell(3, 1).alignment = Alignment(horizontal='center',vertical='center',wrapText=True)

# 参数可选项
horizontal = {'fill', 'distributed', 'centerContinuous', 'right',
              'justify', 'center', 'left', 'general'}

vertical = {'distributed', 'justify', 'center', 'bottom', 'top'}

(6)单元格边框设置 .border

ws.cell(3,3).border = Border(left=Side(style='thin',color=Color(index=0)),
right=Side(style='thin',color=Color(index=0)),
top=Side(style='thin',color=Color(index=0)),
bottom=Side(style='thin',color=Color(index=0)))

可以编个函数对指定表格区域加边框

def set_border(row_start,row_end,col_start,col_end):for i in range(row_start,row_end+1):#行for j in range(col_start,col_end+1): #列sheet.cell(i, j).border = Border(left=Side(style='thin'),right=Side(style='thin'),top=Side(style='thin'),bottom=Side(style='thin'))            return

 (7)单元格背景色填充设置.fill

sheet.cell(4,5).fill = PatternFill(patternType='solid',start_color=Color(index=5))PatternFill(patternType='solid',fgColor=Color(), bgColor=Color())
# fgColor或start_color 起始颜色(用这个就行,给单元格设背景色)
# bgColor或end_color   结束颜色
# 参数可选项patternType='solid'  纯色填充
patternType = {'darkDown', 'darkUp', 'lightDown', 'darkGrid', 'lightVertical', 'solid', 'gray0625', 'darkHorizontal', 'lightGrid', 'lightTrellis', 'mediumGray', 'gray125', 'darkGray', 'lightGray', 'lightUp', 'lightHorizontal', 'darkTrellis', 'darkVertical'}

参数具体意义见另外做的实验:

python openpyxl中单元格颜色填充PatternFill(patternType=‘ ’)效果实测

(8)获取单元格索引信息(行号、列号):

for col in sheet['e']:        #遍历列e的所有单元格print(col)            c=col.col_idx            #5,即e列的序号是第5列d=col.column             #5,同上(两者差别待学习)e=col.row                #1,即行号,从1开始f=col.column_letter      #e,即第e列的序号字母eh=col.coordinate         #e1,即第一个单元格e1格   

4)保存文件:

book.save("savefilepath.xlsx")所有表单处理完后 保存book为xlsx文件

excel文件.xlsx操作 openpyxl 笔记相关推荐

  1. python学习之对excel文件的操作

    python ----------操作excel文件 安装相应的库 pip install xlrd xlwt xlutils 可以兼容低版本的excel文件 pip install openpyxl ...

  2. python的txt、csv、ini、xml、excel文件相关操作

    python的txt.csv.ini.xml.excel文件相关操作 函数,一个用于专门实现某个功能的代码块(可重用) 内置函数 len.bin.oct.hex 等 自定义函数 # 定义了一个函数,功 ...

  3. Excel文件 实用操作小技巧

    Excel文件实用 操作小技巧 目录 1.为Excel文件 添加打开密码  审阅  - 保护工作簿 - 保护结构和窗口-输入密码点击确定 2.为Excel文件 添加作者信息 在Exce文件 图标上右键 ...

  4. Python: 用xlrd读取Excel文件(*.xlsx) 实践才是检验真理的唯一标准!!!

    Python: 用xlrd读取Excel文件(*.xlsx) 网上有不少例子但是不知道都检验没,我就新测遇到这个问题 import os import xlrd, sys# # todo 打开excl ...

  5. [原创]C#通过引用Office Excel (2007) 组件实现对Excel文件的操作

    对用应用软件来说,将报表转出为Excel文件,进行二次加工,或者根据Excel模版填充数据,是非常常用的.实现对Excel文件的操作,如将报表转出为Excel或根据已有的Excel模版进行填充,有很多 ...

  6. python如何使用ppip安装xlwt_Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)...

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...

  7. python openpyxl创建excel文件-python之openpyxl生成excel文件

    from openpyxl importload_workbookfrom openpyxl.styles importFont, Alignment, Side, Borderimportshuti ...

  8. 小白用python处理excel文件-Python3操作Excel文件(读写)的简单实例

    安装 读Excel文件通过模块xlrd 写Excel文件同过模块xlwt(可惜的是只支持Python2.3到Python2.7版本) xlwt-future模块,支持Python3.X,用法据说与xl ...

  9. 用python生成excel文件_python通过openpyxl生成Excel文件的方法

    本文实例讲述了python通过openpyxl生成Excel文件的方法.分享给大家供大家参考.具体如下: 使用前请先安装openpyxl: easy_install openpyxl 通过这个模块可以 ...

最新文章

  1. 1.6 Java项目实战:计算平均成绩
  2. 复现经典:《统计学习方法》第21章 PageRank算法
  3. 使用maven时报错Dynamic Web Module 3.1 requires Java 1.7 or newe
  4. 第三章 熟悉常用的HDFS操作
  5. 2021年四月中旬推荐文章
  6. 均方根误差不超过_快速平方根倒数算法
  7. SegNet论文理解
  8. 知识管理案例:谁来负责知识管理?
  9. webpack-theme-color-replacer 路由跳转之后,样式丢失
  10. 研究生必备的文献翻译软件知云文献翻译替代品--Mac monterey
  11. ajaxPro.dll基础教程
  12. 人工智能 5.搜索树求解
  13. 微信淘宝客引流的正确玩法
  14. linux HPA隐藏分区,删除HPA隐藏分区有两种方法
  15. 京东裁员10%的高管
  16. 华中科技大学计算机专业排名2018,2018华中科技大学专业排名及分数线 王牌专业有哪些...
  17. 操作系统课后答案第四章
  18. Ubuntu下的杀毒
  19. ThinkPad X200 在Fedora 13下安装无线网卡驱动
  20. 金融服务(银行证券机构方向)etl批量作业集群统一调度平台搭建

热门文章

  1. 排查Spring 无法启动的问题
  2. 李宏毅机器学习课程作业-HW1
  3. BeanUtils介绍
  4. 【opencv程序错误解决指南】由于找不到opencv_world401d.dll,无法继续执行代码
  5. C语言不定参数的作用,分享:C语言的三种不定参数,省略号用法
  6. AE 动效工作流技巧 —— 减少 Bodymovin 导出的 JSON 大小并提升性能(一)
  7. directx修复工具win7_win10下安装win7双系统的惨痛教训!
  8. rdma-轮询常用cq函数。
  9. php 读取excel 数字,php如何读取excel中的数据
  10. Android8.0,允许安装未知来源