电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python獲取excel內(nèi)容及相關(guān)操作代碼實例

瀏覽:15日期:2022-07-14 15:34:13

Python沒有自帶openyxl,需要安裝: pip install openyxl

打開excel文檔: openyxl.load_workbook(excel地址) - 打開現(xiàn)有excel文件

openyxl.Workbook() - 新建一個excel文件

返回一個工作博對象

import openpyxlwb = openpyxl.load_workbook('test.xlsx')print(type(wb)) # <class ’openpyxl.workbook.workbook.Workbook’>

openpyxl.load_workbook()函數(shù),傳入一個存在的excel文件名稱/excel文件名稱+文件路徑,返回一個workbook對象。

從workbook對象中獲取工作表

import openpyxlwb = openpyxl.load_workbook('test.xlsx')# print(type(wb)) # <class ’openpyxl.workbook.workbook.Workbook’># 工作簿對象.sheetnames - 獲取當(dāng)前工作簿中所有表的名字# print(wb.sheetnames) [’Sheet1’, ’Sheet2’, ’Sheet3’]# 工作簿對象.active - 獲取當(dāng)前活動表對應(yīng)的Worksheet對象# print(wb.active) <Worksheet 'Sheet1'># 工作簿對象[表名] - 根據(jù)表名獲取指定表對象# print(wb['Sheet2']) <Worksheet 'Sheet2'># 表對象.title - 獲取表對象的表名ws = wb['Sheet1']# print(ws.title) Sheet1# 表對象.max_row - 獲取表中最多有多少行# print(ws.max_row) 15# 表對象.max_column - 獲取表有多少列print(ws.max_column) # 3

從表中取得單元格

import openpyxlwb = openpyxl.load_workbook('test.xlsx')ws = wb['Sheet1']# 表對象[’列號行號’] - 獲取指定列的指定行對應(yīng)的單元格對象(單元格對象是 Cell 類的對象,列號是從A開始,行號是從1開始)a = ws['A1']# print(a) # <Cell ’Sheet1’.A1># 單元格對象.value - 獲取單元格中的內(nèi)容print(a.value)# 單元格對象.row - 獲取行號(數(shù)字1開始)print(a.row)# 單元格對象.column - 獲取列號(數(shù)字1開始)print(a.column)# 單元格對象.coordinate - 獲取位置(包括行號和列號)print(a.coordinate)# 表對象.iter_rows() - 一行一行的取row_s = ws.iter_rows()for a in row_s: for i in a: print(i.value)# 表對象.iter_cols() - 列表一列的取col_s = ws.iter_cols()for c in col_s: for j in c: print(j.value)

用字母來指定列時會出現(xiàn)列Z之后用兩個字母代替,可以調(diào)用表的cell()方法,傳入整數(shù)作為行數(shù)和列數(shù),第一行或者第一列的整數(shù)是1,而不是0

表對象.cell(行號,列號)

import openpyxlwb = openpyxl.load_workbook('test.xlsx')ws = wb['Sheet1']# 獲取第二列的所有內(nèi)容max_row = ws.max_rowfor row in range(1, max_row + 1): cell = ws.cell(row, 2) print(cell.value)

從表中取得列和行

取電子表格中一行、一列或一個矩形區(qū)域中的所有 Cell 對象

表對象[位置1:位置2] 獲取指定范圍內(nèi)的所有單元格

import openpyxlfrom openpyxl.utils import get_column_letter, column_index_from_stringwb = openpyxl.load_workbook('test.xlsx')ws = wb['Sheet1']max_row = ws.max_rowcolumn = get_column_letter(max_row)# 獲取第一列所有單元格對象row2 = ws['A1':f'{column}1']ss = [(cell.coordinate, cell.value) for cells in row2 for cell in cells]print(ss)

import openpyxlfrom openpyxl.utils import get_column_letter, column_index_from_stringwb = openpyxl.load_workbook('test.xlsx')ws = wb['Sheet1']max_cols = ws.max_columncolumn = get_column_letter(max_cols)# 獲取第一片區(qū)域所有單元格對象row2 = ws['A1':f'{column}3']ss = [(cell.coordinate, cell.value) for cells in row2 for cell in cells]print(ss)

創(chuàng)建并保存Excel文檔

openpyxl.Workbook() - 創(chuàng)建空的Excel文件對應(yīng)的工作薄對象

工作薄對象.save(文件路徑) - 保存文件

import openpyxlwb = openpyxl.load_workbook('test.xlsx')ws = wb['Sheet1']# 修改sheet的名稱ws.title = 'hello_world'wb.save('test.xlsx')

創(chuàng)建和刪除sheet

工作薄對象.create_sheet(title, index) - 在指定工作薄中的指定位置(默認(rèn)是最后)創(chuàng)建指定名字的表,并返回表對象

工作薄對象.remove(表對象) - 刪除工作薄中的指定表

import openpyxlwb = openpyxl.load_workbook('test.xlsx')wb.create_sheet()print(wb.sheetnames)wb.create_sheet('test1')print(wb.sheetnames)wb.create_sheet('test2', index=0)print(wb.sheetnames)wb.remove(wb['test2'])print(wb.sheetnames)wb.save('test.xlsx')

將數(shù)據(jù)寫入表格中

import openpyxlwb = openpyxl.load_workbook('test.xlsx')ws = wb['hello_world']# 方式一ws['A4'] = 'hello_world'# 方式二ws.cell(4, 5).value = 'hello_test'wb.save('test.xlsx')

設(shè)置單元格樣式

用表格展示數(shù)據(jù)的時候,有的時候需要對不同的數(shù)據(jù)以不同的風(fēng)格進(jìn)行展示從而達(dá)到分區(qū)或者強調(diào)的作用。

import openpyxlfrom openpyxl.styles import Font, PatternFill, Border, Side, Alignment# 1.打開工作薄wb = openpyxl.load_workbook('test.xlsx')ws = wb['hello_world']# 2.設(shè)置單元格字體樣式'''Font( name=None, # 字體名,可以用字體名字的字符串 strike=None, # 刪除線,True/False color=None, # 文字顏色 size=None, # 字號 bold=None, # 加粗, True/False italic=None, # 傾斜,Tue/False underline=None # 下劃線, ’singleAccounting’, ’double’, ’single’, ’doubleAccounting’)'''# 1:創(chuàng)建字體對象font1 = Font( size=20, italic=True, color='ff0000', bold=True, strike=True)# 2:設(shè)置指定單元格的字體# 單元格對象.font = 字體對象ws['B2'].font = font1# 3:設(shè)置單元格填充樣式'''PatternFill( fill_type=None, # 設(shè)置填充樣式: ’darkGrid’, ’darkTrellis’, ’darkHorizontal’, ’darkGray’, ’lightDown’, ’lightGray’, ’solid’, ’lightGrid’, ’gray125’, ’lightHorizontal’, ’lightTrellis’, ’darkDown’, ’mediumGray’, ’gray0625’, ’darkUp’, ’darkVertical’, ’lightVertical’, ’lightUp’ start_color=None # 設(shè)置填充顏色)'''fill = PatternFill( fill_type='solid', start_color='ffff00')ws['B2'].fill = fill# 設(shè)置單元格對齊樣式al = Alignment( horizontal='right', # 水平向方: center 靠左:left 靠右: right vertical='top' # 垂直方向: center, top, bottom)ws['B2'].alignment = al# 設(shè)置邊框樣式# 設(shè)置邊對象(四個邊可以是一樣的也可以不同,如果不同就創(chuàng)建多個Side對象)side = Side(border_style='thin', color='0000ff')# 設(shè)置邊框?qū)ο?left、right、top、bottom表示的是邊框的四個邊,這兒四個邊使用的是一個邊對象)db = Border(left=side, right=side, top=side, bottom=side)ws['B2'].border = db# 設(shè)置單元格的寬度和高度# 設(shè)置指定列的寬度ws.column_dimensions['A'].width = 20# 設(shè)置指定行的高度ws.row_dimensions[1].height = 45wb.save('test.xlsx')

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: python
相關(guān)文章:
主站蜘蛛池模板: GAST/BRIWATEC/CINCINNATI/KARL-KLEIN/ZIEHL-ABEGG风机|亚喜科技 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 涡轮流量计_LWGY智能气体液体电池供电计量表-金湖凯铭仪表有限公司 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 智能终端_RTU_dcm_北斗星空自动化科技 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 | 合肥礼品公司-合肥礼品定制-商务礼品定制公司-安徽柏榽商贸有限公司 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 润滑脂-高温润滑脂-轴承润滑脂-食品级润滑油-索科润滑油脂厂家 | 智慧消防-消防物联网系统云平台| 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 电子海图系统-电梯检验系统-智慧供热系统开发-商品房预售资金监管系统 | 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 天津云仓-天津仓储物流-天津云仓一件代发-顺东云仓 | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 真空泵厂家_真空泵机组_水环泵_旋片泵_罗茨泵_耐腐蚀防爆_中德制泵 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 浇钢砖,流钢砖_厂家价低-淄博恒森耐火材料有限公司 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 |