91 免费视频
热点资讯
- 骆冰淫传 老中医治痛警戒方子宫脱垂秘方殊效方
- 男同 sex 钱金金的驭夫之路演员表&完竣版剧情先容
- hongkongdoll 英超积分榜:枪手先赛遭首败仍第3,曼联跌第11重回下半区
- 骆冰淫传 2024年10月份专家制造业PMI为48.8% 与上月握平
- 萝莉 色情 国庆一周 玩转郴州|国庆节天气转好 临武客流迎来小岑岭
- 李春城 姐妹花 家用车新采用,实拍极氪MIX,有4/5座可选,值得磋商吗?
- twitter 反差 埃及建议为期两天的加沙地带停战决议
- 骆冰淫传 国外不雅察丨多量企业裁人歇业 好意思国经济零落隐忧难消
- 麻豆 孤注一掷 好意思国白宫发布哈里斯体检证实,称其健康气象精良
- 骆冰淫传 前曼联助教: 滕哈赫老是上前看, 英力士很因循他
骆冰淫传 python中openpyxl库用法详解
- 发布日期:2024-09-12 17:08 点击次数:119
openpyxl模块是一个读写Excel 文档的Python库骆冰淫传,openpyxl是一个比拟概述的器具,粗略同期读取和修改Excel文档。
openpyxl.load_workbook(地址) - 大开给定的文献名并复返 职责簿openpyxl.Workbook() - 新建一个 Workbook(职责簿)对象 ,即excel文献 一、读取数据数据如下图所示:
图片骆冰淫传
示例代码:
import openpyxl# 大开给定的文献名并复返 职责簿data = openpyxl.load_workbook('data/体检表.xlsx')print(type(data))print(data) # 复返一个 workbook 数据类型的值
运行效果:
图片
1.1 从职责簿中取得职责表 职责簿对象.sheetnames - 获妥当前职责簿中 总计表的名字职责簿对象.active - 获妥当前 行为表1 对应的Worksheet对象职责簿对象[表名] - 字据表名获得指定 表对象表对象.title - 获得表对象的 表名表对象.max_row - 获得表的 最大灵验行数表对象.max_column - 获得表的 最大灵验列数示例代码:
import openpyxl# 大开给定的文献名并复返 职责簿data = openpyxl.load_workbook('data/体检表.xlsx')print(type(data))print(data) # 复返一个 workbook 数据类型的值# 获得总计表的表名sheets_names = data.sheetnamesprint(sheets_names)# 获得行为表对应的表对象(表对象即是Worksheet类的对象)active_sheet = data.activeprint(active_sheet)# 字据表名获得职责簿中指定的表sheet2 = data['Sheet2']print(sheet2)# 字据表对象获得表的名字sheet_name1 = active_sheet.titlesheet_name2 = sheet2.titleprint(sheet_name1, sheet_name2)# 获得第二列的总计本质sheet = data.activerow_num = sheet.max_row # 获妥当前表中最大的行数for row in range(1, row_num+1): cell = sheet.cell(row, 2) print(cell.value)
运行效果:
图片
1.2 从表中取得单位格 表对象['列号行号'] - 获得指定列的指定行对应的单位格对象(单位格对象是 Cell 类的对象,列号是从A开动,行号是从1开动)表对象.cell(行号, 列号) - 获得指定行指定列对应的单位格(这儿的行号和列好号都不错用数字)表对象.iter_rows() - 一滑一滑的取表对象.iter_cols() - 列表一列的取单位格对象.value - 获得单位格中的本质单位格对象.row - 获得行号(数字1开动)单位格对象.column - 获得列号(数字1开动)单位格对象.coordinate - 获得位置(包括行号和列号)示例代码:
import openpyxl# 大开给定的文献名并复返 职责簿data = openpyxl.load_workbook('data/体检表.xlsx')print(type(data))print(data) # 复返一个 workbook 数据类型的值# 获得活跃表对象sheet = data.active# 获得单位格对应的 Cell 对象a1 = sheet['A1'] # A1 默示A列中的第一滑,这儿的列号聘请的是从A开动的print(a1)# 获得单位格中的本质content = a1.valueprint(content)# 调用表的 cell()法式时,不错传入整数 算作 row 和 column 要道字参数,也不错得到一个单位格content2 = sheet.cell(2, 2).valueprint(content2)# 获得单位格的行和列信息row = a1.rowprint('行:', row)column = a1.columnprint('列:', column)coordinate = a1.coordinateprint(coordinate)print("*" * 100)# 获得第二列的总计本质row_num = sheet.max_row # 获妥当前表中最大的行数for row in range(1, row_num+1): cell = sheet.cell(row, 2) print(cell.value)
运行效果:
图片
风雅:在 Z 列之后,列开动使用两个字母:AA、AB、AC 等。算作替代骆冰淫传,在调用表的 cell()法式时,不错传入整数 算作 row 和 column 要道字参数,也不错得到一个单位格。
风雅:第一滑或第一列的对应的整数 是 1,不是 0。
1.3 从表中取得行和列表对象也不错像列表或者字符串那样进行 切片 操作,来获得电子表格中一滑、一列或一个 矩形区域 中的总计 Cell 对象,然后就不错对数据进行相应的操作。
性吧, 表对象[位置1:位置2] - 获得指定鸿沟中的总计的单位格示例代码:
import openpyxlfrom openpyxl.utils import get_column_letter# 大开给定的文献名并复返 职责簿data = openpyxl.load_workbook('data/体检表.xlsx')# print(type(data))# print(data) # 复返一个 workbook 数据类型的值# 获得表对象sheet = data.active# 1.获得通盘一滑的单位格max_column = sheet.max_column # 获得最大列数column = get_column_letter(max_column) # 获得最大列数对应的字母列号# 获得第一滑总计单位格对象row2 = sheet['A1':'%s1' % column] # ((<Cell '表1'.A1>, <Cell '表1'.B1>, <Cell '表1'.C1>),)print(row2)for row_cells in row2: for cell in row_cells: print(cell.coordinate, cell.value)print("*" * 100)# 2.获得通盘列的单位格max_row = sheet.max_rowcolumnB = sheet['B1':'B%d' % max_row]# 获得B列对应的总计单位格对象for column_cells in columnB: for cell in column_cells: print(cell.coordinate, cell.value)print("*" * 100)# 3. 获得矩形区域中的单位格对象cell_tuples = sheet['A1': 'C3']print(cell_tuples)for cells in cell_tuples: for cell in cells: print(cell.coordinate, cell.value)
运行效果:
图片
二、写入数据 2.1 创建Workbook对象来创建Excel文献并保存 openpyxl.Workbook() - 创建空的 Excel 文献对应的职责簿对象职责簿对象.save(文献旅途) - 保存文献职责簿对象.create_sheet(title, index) - 在指定职责簿中的指定位置(默许是临了)创建指命名字的表,况且复返表对象职责簿对象.remove(表对象) - 删除职责簿中的指定表表对象[位置] = 值 - 在表中指定位置对应的单位格中写入指定的值,位置是字符串:'A1’(第1列的第一滑)、'B1’(第二列的第一滑)示例代码:
import openpyxl# 创建空的Workbook对象w_data = openpyxl.Workbook()# 获得总计表名print(w_data.sheetnames) # ['Sheet']# 可知默许情况下,新建的Workbook对象对应的Excel 文献中唯有一张名字是 'Sheet' 的表# 获得行为表sheet_active = w_data.active# 修改表的名字sheet_active.title = 'first_table'# 保存至文献w_data.save(filename='data/info.xlsx')# 新建表w_data.create_sheet()w_data.create_sheet()# for i in range(20):# wb.create_sheet()print(w_data.sheetnames) # ['first_table', 'Sheet', 'Sheet1']# 新建表时,从Sheet开动一直到Sheet nw_data.create_sheet('second_table')# `职责簿对象.create_sheet(title, index)` - 在指定职责簿中的指定位置(默许是临了)创建指命名字的表,况且复返表对象w_data.create_sheet('third_table', 1)print(w_data.sheetnames) # ['first_table', 'third_table', 'Sheet', 'Sheet1', 'second_table']# 删除表w_data.remove(w_data['Sheet1'])w_data.save(filename='data/info.xlsx')# 写入数据w_data = openpyxl.load_workbook('data/info.xlsx')sheet = w_data['first_table'] # 获得表sheet['A1'] = '姓名'sheet['B1'] = '年事'sheet['C1'] = '性别'sheet['A2'] = '张三'sheet['B2'] = 25sheet['C2'] = '男'w_data.save('data/info.xlsx')
运行效果:
图片
图片
2.2 案例分析一 :爬取数据并保存excel中示例代码:
# 期骗requests获得天行数据中疫情数据,况且将获得到的数据使用excel文献保存到表中。import requestsimport openpyxlfrom openpyxl.utils import get_column_letter# 1.获得数据url = 'http://api.tianapi.com/txapi/ncovabroad/index?key=c9d408fefd8ed4081a9079d0d6165d43'rep = requests.get(url)news_list = rep.json()['newslist']# 2.开导表头信息headers = {'continents': ('洲', 'A'), 'provinceName': ('国度', 'B'), 'currentConfirmedCount': ('现存确诊', 'C'), 'confirmedCount': ('累计确诊', 'D'), 'curedCount': ('休养', 'E'), 'deadCount': ('牺牲', 'F')}# 3.创建职责表wb = openpyxl.Workbook()sheet = wb.active# 4.写入数据# 先写入第一滑的表头column_num = 1for key in headers: column = get_column_letter(column_num) location = f'{column}1' sheet[location] = headers[key][0] column_num += 1# 再从第二行开动写入爬取到的数据row = 2for news in news_list: # 遍历每条数据项,一个数据项对应一个字典 for key in news: # 遍历数据键值 if key in headers: # 保证键是表头中的某一项咱们需要的数据 location = f'{headers[key][1]}{row}' # 存在表中的位置 value = news[key] # 需要的数据 sheet[location] = value # 写入 row += 1wb.save(filename='data/epidemic.xlsx')
运行效果:
图片
2.3 案例分析二: 操作单位格中本质神色并保存数据示例代码:
import openpyxlfrom openpyxl.styles import Font, PatternFill, Border, Side, Alignment # 字体、填充图案、边框、侧边、对皆花式# 1.大开职责簿data = openpyxl.load_workbook('data/体检表.xlsx')sheet = data.active# 2.开导单位格字体神色"""Font( name=None, # 字体名,不错用字体名字的字符串 strike=None, # 删除线,True/False color=None, # 翰墨热诚 size=None, # 字号 bold=None, # 加粗, True/False italic=None, # 歪斜,Tue/False underline=None # 下划线, 'single', 'singleAccounting', 'double','doubleAccounting')"""# 创建字体对象,并革新适当的参数font1 = Font( name='微软雅黑', size=15, italic=False, color='ff0000', bold=False, strike=False, underline='single',)# 开导指定单位格的字体# 单位格对象.font = 字体对象area = sheet['A1':'E1']for row in area: for _ in row: _.font = font1 # 革新字体# 3.开导单位格填充神色"""PatternFill( fill_type=None, # 开导填充神色: 'darkGrid', 'darkTrellis', 'darkHorizontal', 'darkGray', 'lightDown', 'lightGray', 'solid', 'lightGrid', 'gray125', 'lightHorizontal', 'lightTrellis', 'darkDown', 'mediumGray', 'gray0625', 'darkUp', 'darkVertical', 'lightVertical', 'lightUp' # '深色网格“,”深色网格“,”深色水平“,”深色灰色“,”淡色向下“,”浅灰色“,”纯色“,”淡色网格“,”灰色125“,”淡色水平“,”淡色网格“,”深色向下“,”中灰色“,”灰色0625“,”深色进取“,”深色垂直“,”淡色垂直“,”淡色进取“ start_color=None# 开导填充热诚)"""# 开导填充对象fill = PatternFill(fill_type='solid', start_color='FFC0CB')# 开导单位格的填充神色# 单位格对象.fill = 填充对象area = sheet['A1':'E1']for row in area: for _ in row: _.fill = fill # 革新填充体式# 4. 开导单位格对皆神色# 创建对象al = Alignment( horizontal='right', # 水平素向:center, left, right vertical='top', # 垂直处所: center, top, bottom)# 开导单位格的对皆花式sheet['B2'].alignment = al# 5. 开导边框神色# 开导边对象(四个边的边不错是相同的也不错不同,若是不同就创建对个Side对象)# border_style取值('dashDot','dashDotDot', 'dashed','dotted','double','hair', 'medium', 'mediumDashDot', 'mediumDashDotDot','mediumDashed', 'slantDashDot', 'thick', 'thin')# 单点划线,双点划线,点划线,双划线,头发,中划线,单点中划线,双点中划线,中划线,斜划线,粗划线,细划线side = Side(border_style='thin', color='000000')# 开导边框对象# left、right、top、bottom默示的是边框的四个边,四个边不错使用一个边对象bd = Border(left=side, right=side, top=side, bottom=side)# 开导单位格的边框area = sheet['A1':'E1']for row in area: for _ in row: _.border = bd# 6.开导单位格的宽度和高度# 开导列宽sheet.column_dimensions['A'].width = 10# 开导行高sheet.row_dimensions[1].height = 30# 7. 保存data.save(filename='data/体检表2.xlsx')图片
运行效果:
图片
2.4 案例分析三:将列表数据写入excel中示例代码:
import openpyxlimport datetimedatas = [ ('学号', '姓名', '年事', '专科', '锻真金不怕火时分'), ('B00001', '张1', 18, '语文', datetime.datetime(2019, 6, 18, 0, 0)), ('B00002', '张2', 19, '数学', datetime.datetime(2019, 6, 19, 0, 0)), ('B00003', '张3', 20, '英语', datetime.datetime(2019, 6, 20, 0, 0)), ('B00004', '张4', 21, '物理', datetime.datetime(2019, 6, 21, 0, 0)), ('B00005', '张5', 22, '化学', datetime.datetime(2019, 6, 22, 0, 0)), ('B00006', '张6', 23, '生物', datetime.datetime(2019, 6, 23, 0, 0)), ('B00007', '张7', 24, '历史', datetime.datetime(2019, 6, 24, 0, 0))]# 创建空的Workbook对象w_data = openpyxl.Workbook()# 获得行为表sheet = w_data.activefor i in range(1, len(datas) + 1): for j in range(1, 6): sheet.cell(row=i, column=j, value=datas[i - 1][j - 1])w_data.save('data/info.xlsx')图片
运行效果:
图片
2.5 案例分析四:将列表数据写入excel中的多个sheet中,并开导标题行示例代码:
import openpyxlimport datetimedatas = [ ('B00001', '张1', 18, '语文', datetime.datetime(2019, 6, 18, 0, 0)), ('B00002', '张2', 19, '数学', datetime.datetime(2019, 6, 19, 0, 0)), ('B00003', '张3', 20, '英语', datetime.datetime(2019, 6, 20, 0, 0)), ('B00004', '张4', 21, '物理', datetime.datetime(2019, 6, 21, 0, 0)), ('B00005', '张5', 22, '化学', datetime.datetime(2019, 6, 22, 0, 0)), ('B00006', '张6', 23, '生物', datetime.datetime(2019, 6, 23, 0, 0)), ('B00007', '张7', 24, '历史', datetime.datetime(2019, 6, 24, 0, 0))]# 创建空的Workbook对象w_data = openpyxl.Workbook()# 创建 sheet 对象sheet1 = w_data.activesheet1.title = 'Sheet1'sheet2 = w_data.create_sheet("Sheet2")sheet3 = w_data.create_sheet("Sheet3")# 添加标题行headers = ['学号', '姓名', '年事', '专科', '锻真金不怕火时分']sheet1.append(headers)sheet2.append(headers)sheet3.append(headers)# 风雅:添加了标题行,底下写入数据时,sheet.cell中的row要往下迁徙一滑,不然会障翳掉标题行# 将数据写入sheet1for i in range(1, len(datas) + 1): for j in range(1, 6): sheet1.cell(row=i + 1, column=j, value=datas[i - 1][j - 1])# 将数据写入sheet2for i in range(1, len(datas) + 1): for j in range(1, 6): sheet2.cell(row=i + 1, column=j, value=datas[i - 1][j - 1])# 将数据写入sheet3for i in range(1, len(datas) + 1): for j in range(1, 6): sheet3.cell(row=i + 1, column=j, value=datas[i - 1][j - 1])w_data.save('data/info.xlsx')图片
运行效果:
图片
本站仅提供存储做事,总计本质均由用户发布,如发现存害或侵权本质,请点击举报。相关资讯
- 骆冰淫传 军事论坛丨把执军情表面创新要害点2024-11-08
- 骆冰淫传 未必辰真是嗅觉好多东说念主对专业生有很大的坏心2024-11-08
- 骆冰淫传 中国新一代隐形战机,缘何定名“歼-35A”?2024-11-08
- 骆冰淫传 华夏环保世游记丨 国有黄石庵林场:绿意筑梦,督察南阳“生态绿肺”2024-11-07
- 骆冰淫传 2024年10月份专家制造业PMI为48.8% 与上月握平2024-11-07
- 骆冰淫传 强化“码”上监督,看守药品安全2024-11-07