python关于excel多个sheet的导入导出方式
作者:此去何从 发布时间:2021-03-15 04:40:19
标签:python,excel,sheet
关于excel多个sheet的导入导出
import pandas as pd
df = pd.read_excel('test.xlsx', sheet_name = None) # 导入一个excel中的所有sheet
df
导入的是一个字典类型数据,具体如下:
提取字典中的每个键值对:
chinese = df.get('语文成绩')
math = df.get('数学成绩')
math
查看其中一个变量,可以看出是一个数据框:
python导出多个数据框到同一个excel的不同sheet
# 将多个dataframe导入到同一个excel
writer = pd.ExcelWriter('score.xlsx',engine='xlsxwriter')
chinese.to_excel(writer, sheet_name = 'chinese', index = False)
math.to_excel(writer, sheet_name = 'math', index = False)
writer.save() # 此语句不可少,否则本地文件未保存
查看本地的当前路径,可以得到一个score.xlsx的文件,其中有两个sheet:
python复制Excel多个sheet到Excel表
由于工作需要,经常需要复制Excel多个sheet到Excel表,今天抽时间来实现它 利用python openpyxl库实现, 将
目录这2个文件复制到其他文件
话不多说,上代码
from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl.writer.excel import ExcelWriter
# 导入字体、边框、颜色以及对齐方式相关库
from openpyxl.styles import Font, Border, Side, PatternFill, colors, Alignment
'''
该脚本用来拷贝paydroid平台化文档 到一个文档
如果出现读数据错误 记得将源文件【paydroid平台化文档】另存为一个Excel文档
参考https://stackoverflow.com/questions/46150893/error-when-trying-to-use-module-load-workbook-from-openpyxl
源文件:src_paydroid.xlsx
目的文件:copy_fromPaydroid
2021-0930 国庆到了 补充将修改时间列复制到测试执行人
再次备注:亲测 功能有效
'''
a = 0
b = []
state = [] # 状态
typeinfo = [] # 类型
impact_model = [] # 影响机型
title = []
summary = []
test_recommendations = []
update_time = []
wb = load_workbook('C:\\Users\\liuw\\Desktop\\python\\src_paydroid.xlsx', data_only=True)
sheets=['1.12.0006','1.12.0005','1.12.0004']
for i in sheets:
ws = wb[i]
# print(ws.max_row) # 表行数
# print(ws.max_column) # 表列数
sheet = wb.active
a = ws.max_row
print('当前sheet.length', a)
i = 0
while i < a:
i = i + 1
if i<5:
continue
print(ws.cell(i, 1).value) # 表里的第1列 的数据
b.append(ws.cell(i, 1).value)
# b.insert(i, ws.cell(i, 1).value)
state.append(ws.cell(i, 3).value)
typeinfo.append(ws.cell(i, 5).value)
impact_model.append(ws.cell(i, 7).value)
title.append(ws.cell(i, 9).value)
summary.append(ws.cell(i, 10).value)
test_recommendations.append(ws.cell(i, 11).value)
update_time.append(ws.cell(i,4).value)
print('b.length', len(b))
print(b)
print("新写入的Excel 总行:",len(b))
wbtest = load_workbook('C:\\Users\\liuw\\Desktop\\python\\copy_fromPaydroid.xlsx')
ws = wbtest['Sheet1']
ws.font = Font(u'微软雅黑',size=12) #样式功能 暂未实现
sheet = wb.active
i = 0
while i < len(b):
ws.cell(i + 3, 1).value = b[i] # 复制粘贴到 目的.xlsx 的第3行 第一列
ws.cell(i + 3, 2).value = state[i]
ws.cell(i + 3, 3).value = typeinfo[i]
ws.cell(i + 3, 4).value = impact_model[i]
ws.cell(i + 3, 5).value = title[i]
ws.cell(i + 3, 7).value = update_time[i]
ws.cell(i + 3, 8).value = summary[i]
ws.cell(i + 3, 10).value = test_recommendations[i]
i = i + 1
wbtest.save('C:\\Users\\liuw\\Desktop\\python\\copy_fromPaydroid.xlsx')
wbtest.close() # 关闭
最终效果
完美实现 亲测可用
来源:https://blog.csdn.net/qq_44889022/article/details/118396858


猜你喜欢
- 本文实例讲述了Python使用scrapy采集时伪装成HTTP/1.1的方法。分享给大家供大家参考。具体如下:添加下面的代码到 settin
- 由于工作的需求,需要用python做一个类似网络爬虫的采集器。虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需
- 此文用来正式回复大辉同学的疑问。1、结论:固定宽度只适合功能型网站,不适合希望用户认真阅读的浏览型网站。UCD大社区是浏览型网站,它的定位是
- 我在配置mysql时将配置文件中的默认存储引擎设定为了InnoDB。今天查看了MyISAM与InnoDB的区别,在该文中的第七条“MyISA
- tensorflow中对tensor对象进行像numpy数组一样便捷的操作是不可能的, 至少对1.2以及之前的版本而言。从issue上看到,
- 继上篇Vue 滚动触底 mixins,将对于文档滚动触底的逻辑迁移到某个dom上,将会用到 Vue.directive 来实现代码逻辑复用。
- 介绍psutil能够轻松实现获取系统运行的进程和系统利用率。导入模块import psutils获取系统性能信息CPU信息使用cpu_tim
- matplotlib官方除了提供了鼠标十字光标的示例,还提供了同一图像内多子图共享光标的示例,其功能主要由widgets模块中的MultiC
- 前言Django提供了多种装饰器, 其中login_required可能是经常会使用到的。 这里介绍下四种使用此装饰器的办法。当然, 在使用
- 概述Object.freeze(obj)可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删
- 本文实例讲述了Python面向对象程序设计之继承、多态原理与用法。分享给大家供大家参考,具体如下:相关内容:继承:多继承、super、__i
- 本文实例讲述了Python简单删除列表中相同元素的方法。分享给大家供大家参考,具体如下:去除列表中重复的元素,非常简单,直接上代码:a =
- 开发测试的时候,经常需要填写姓名、手机号、身份证号、银行卡号,既要符合格式要求、又不能重复。大家会到网上搜各种生成器。下面小编自己写的一个j
- 不知道有没有人碰到过这样恶心的问题:两张表连接查询并limit,SQL效率很高,但是加上order by以后,语句的执行时间变的巨长,效率巨
- docker安装mysql版本8.0.20,供大家参考,具体内容如下第一步 下拉镜像docker pull mysql:8.0.20第二步
- 问题来源jupyter notebook在命令行中启动之后,默认根目录为命令行的当前目录,这样便利性较差。下面给出了三种指定启动目录的方法,
- 0. 简介在上篇博客——《Golang调度器(4)—goroutine调度》中一
- 如何用PYTHON制作填词游戏新建一个PYTHON文档。用JUPYTER NOTEBOOK打开即可。print("Heart is
- IF函数IF(expression ,expr_true, expr_false);MySQL的IF()函数,接受三个表达式,如果第一个表达
- 一、模拟数据库数据1-1 创建数据库及表脚本 - vim slap.sh#!/bin/bash HOSTNA