惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
Attack and Defense Labs
Attack and Defense Labs
V2EX - 技术
V2EX - 技术
O
OpenAI News
S
Secure Thoughts
H
Heimdal Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Schneier on Security
Schneier on Security
H
Hacker News: Front Page
S
Security Affairs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
The Register - Security
The Register - Security
GbyAI
GbyAI
Cloudbric
Cloudbric
MongoDB | Blog
MongoDB | Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
K
Kaspersky official blog
Forbes - Security
Forbes - Security
Y
Y Combinator Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
Hacker News - Newest:
Hacker News - Newest: "LLM"
The Cloudflare Blog
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
Webroot Blog
Webroot Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog
T
Tor Project blog
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Hacker News: Ask HN
Hacker News: Ask HN
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
I
Intezer
V
V2EX
T
Tailwind CSS Blog
SecWiki News
SecWiki News
NISL@THU
NISL@THU
C
Check Point Blog

博客园 - soar.pang

20260313 配置Python环境,执行导出批量数据到Excel,代码由Cursor 生成 metabase 在Ubuntu 20版本上的服务自动重启配置 python调度高德API,计算经度,维度距离 metabase 使用记录 metabase 搭建使用记录 OCI 2021.09.15-1 Kettle 公式 2021.03.03 Kettle 环境搭建--系统环境Ubuntu20.04 2020.12.31 Oracle 12c 服务器,PL/SQL连接访问提示不支持和用户密码不正确 Oracle 12C RAC环境搭建 Linux 环境中Oracle 安装遇的问题 Postgresql windows 环境安装一 小米智能驱蚊器体验 PowerBI 基础图表 企业单位 【第一周】三维可视之基础运用 测验(一) Python科学计算三维可视化 Pg数据库的基础安装 Windows Server 任务计划执行.exe 20200211 Oracle监听启动异常
2020.10.13 Python 处理数据生成多Sheet Excel
soar.pang · 2020-10-13 · via 博客园 - soar.pang

我不一个系统化,框架化的工作者,而是是一个解决问题的工作者。

一、需求  

1. 从Oracle数据库中取出符合要求的数据

2. 对数据进行格式处理

3.导出按部门保存到不同的sheet中

工具: VS2019 ,Python 3.7 

这里会涉及到一些需要用到的包, 可以用pip install  包名称 

进行安装, 使用VS提供的扩展工具在3.7版本右键可以看到

安装完成后,也行不能系统还是不能识别import 相应的包,建议重启VS

如果VS中有中文出现一些提示不能解析,建议用Note 编辑工具,对.py文件进行编码转变, 转换为UTF-8

 3. 脚本,从Oracle里面获取需要的数据

访问Oracle数据库代码,有好几种方式,我只用了一种

db2=cx.connect('soar','0000','192.168.10.25:1521/CQ')

分别是: 账户,密码,IP,端口,实例名

4. 定义SQL ,也就是你需要的数据

sql3="select  role_name as 角色名称,parent_menu as 模块名称,menu_name as 菜单名称 from table1"

也可以不重命名,我只是为了方便看而已, 这里会有一点其他的部分,比如你如果需要换行 ,这就会有一个斜杠可以用, 当然也有其他的方法,我只是为了我的实现目的,就没有去重新整理

sql3="select  role_name as 角色名称,parent_menu as 模块名称,menu_name as 菜单名称 "  \
      " from  table1"  

执行得到结果集,并用键值对的方式呈现

cr2=db2.cursor()

cr2.execute(sql3) 
rs2=cr2.fetchall()

cr2.close()
db2.close()

这就有了游标的方法,关于fetchall() 还有一些其他的方法得到结果集,只是这里不会带出列名称,只有数据值,这就让我很不舒服了, 因为我需要把列名称导入到Excel里面去

5. 获取数据后需要的,就是对数据进行处理,还包括了导入Excel数据应该要呈现的格式,我做这个项目,就是因为客户要不同部门的数据,部门又很多,在每个sheet里面格式又是客户提供的,我是没想一个一个去数据整理,还有格式优化。那会是重复切很无聊的工作

尤其是又不是一两个sheet,是几百个sheet。。。这样我的心情就很不好。

6. 导入需要的pandas部分

import pandas as pd
from styleframe import StyleFrame, Styler, utils

7.对Excel格式进行修改跟配置

sf = StyleFrame(pd.DataFrame(rs2,columns=['角色名称', '模块名称', '菜单名称']))  

sf.apply_column_style(cols_to_style=["角色名称","模块名称","菜单名称"], 
                      styler_obj=Styler(font='Segoe UI', font_size=9 , bold=False , 
                                       horizontal_alignment=utils.horizontal_alignments.left , wrap_text=True),
                      style_header=True)
sf.set_column_width(columns=["角色名称","模块名称","菜单名称"],width=20)

ew = StyleFrame.ExcelWriter(r'D:\\V1.xlsx')
sf.to_excel(ew)
ew.save()

当然,这个列名是可以通过一定的方式从数据库中获取,来生成的, 我这里需要的不多,也固定,所以我懒了

官网中有很多对 StyleFrame  的讲解, 我这里只用了简单的,对字体的设置, 列名的设置, 字体是否加粗,字体大小,字体摆放靠左,列的宽度。

上面的代码,是一段一个Sheet的格式,

也许并不是你需要的内容,这只是我人生的一些痕迹. -- soar.pang