频道栏目
首页 > 网络 > 其他 > 正文

Python利用openpyxl处理Excel文件(Excel文件基本操作)-占兴 从心开始-51CTO博客

2020-05-14 12:53:47           
收藏   我要投稿

对于openyxl进行Excel操作:本文介绍简单的openyxl对Excel的基本操作。1、创建Excel文件form openyxl import Workbookwb = Workbook()wb 为一个Workbook对象,而这个对象的属性我们还没有具体定义,还在内存中,通过save()方法,我们将工作簿对象保存在本地。我们保存的这个工作簿中默认只有一张名为“Sheet”的工作表。2、打开已有的Excel文件form openyxl import load_workbookwb = load_workbook('test.xlsx')我们利用load——workbook()方法打开一个Excel文件,该方法还是返回了一个Workbook对象。

3、获得活动工作表当然,获得活动的工作表之前,如果我们想要知道工作簿中具体有多少个工作表呢?代码如下:list_ws = wb.get_sheet_names()

list_ws是一个列表,元素为工作薄wb中所有的工作表名称。如果要返回所有的工作表对象,则使用:wb.worksheets

如何获得活动的工作表(即当前工作表)current_ws = wb.get_active_sheet()

current_ws返回一个当前活动的工作表。

4、创建一个工作表

ws = wb.create_sheet(index=0, title="ws name")不带参数,默认index为0

ws = wb.create_sheet("ws name")

可以设置表格的颜色、标题等内容

ws.title = "ws name change"

ws.sheet_properties.tabColor = "A78b27"

此外,还可以获得表格的以下几个常用属性:

ws.dimensions: 表格的大小,这里的大小是指含有数据的表格的大小,即:左上角的坐标:右下角的坐标,空表返回'A1:A1'。

ws.min_row: 表格的最小行ws.max_row:表格的最大行ws.min_column:表格的最小列ws.max_column:表格的最大列ws.rows:按行获取单元格(Cell对象)--生成器columns:按列获取单元格(Cell对象)--生成器freeze_panes:冻结窗口values:按行获取表格的内容(数据)--生成器

5、创建一个工作表的副本sourceSheet = wb.active

targetSheet = wb.copy_worksheet(sourceSheet)

6、操作Excel数据(Cell)(1).访问一个单元格c = ws['A4'] #访问a4单元格(2).一个单元格赋值

ws['A4'] = 4

c = ws.cell(row=4, column=1, value=4)内存中创建工作表,不包括单元格,单元格式首次访问时才创建的

(3).访问多个单元格(1)范围内的单元格使用切片处理cellRange = ws['A1':'E10']

范围可以获得同样的行或者列colC = ws['B'] #获得C列数据

colRange = ws['B':'E'] #获得B列到E列数据

rowD = ws[10] #获得第10行的数据

rowRange = ws[5:10] #获得5-10行的数据

(2)元素遍历

行遍历使用Worksheet的iter_rows()方法for row in ws.rows(min_row=1,max_row=12,min_column=1,max_column=12):

for cell in row:

print(cell)

min_row、max_row、min_column、max_column设定iter_rows的行范围。

2.列遍历使用Worksheet的iter_cols()方法

for col in ws.cols(min_row=1,max_row=12,min_column=1,max_column=12):

for cell in col:

print(cell)

3.遍历所有的行ws.rows或遍历所有的列ws.columns

print(tuple(ws.rows))

print(tuple(ws.columns))

(4).单元格数据存储

一旦我们有了一个Cell对象,我们就可以分配一个值:

c.value = 'hello, world' # 可以是字符串类型

c.value = 2.25 # 可以使浮点数类型

您还可以使类型和格式推理:

wb = Workbook(guess_types=True)

c.value = '15%' # 百分比

c.value = datetime.datetime.now() # datetime类型

c.value = '21.32' # 将浮点数类型变成字符串赋值

可以看出单元格存储的数据是多种类型的。

7、Excel文件保存wb = Workbook()

wb.save(excel_name)

注:此操作将覆盖源文件没有提示。

示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/3/17 10:21
# @Author : Zhanxing
# @Site : 
# @File : test.py
# @Software: PyCharm
import openpyxl
def create_sheet_cell(nSheet,nCell):
    wb = openpyxl.Workbook()
    for n in range(nSheet):
        wb.create_sheet(index=n,title="Sheet" + str(n+1))
        currentSheet = wb.active
        for r in  range(1,nCell+1):
            for c in range(1,nCell+1):
                cell = currentSheet.cell(row=r,column=c,value=r*c)
    wb.save("test.xlsx")

if __name__ == "__main__":
    nSheet = int(input("输入电子表格的个数(整数):"))
    nCell = int(input("输入乘法表的最大值(整数):"))
    create_sheet_cell(nSheet, nCell)
上一篇:zabbix-server启动失败:pid not readable-Heartnight();-51CTO博客
下一篇:redis-4.0.2源码安装-15809293299的博客-51CTO博客
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站