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

推荐订阅源

N
Netflix TechBlog - Medium
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
Docker
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
T
Tenable Blog
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
The Hacker News
The Hacker News
Project Zero
Project Zero
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Cyberwarzone
Cyberwarzone
The Register - Security
The Register - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
U
Unit 42
Scott Helme
Scott Helme
A
About on SuperTechFans
WordPress大学
WordPress大学
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
G
GRAHAM CLULEY
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Schneier on Security

博客园 - 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