28.1、下载python的离线扩展模块:

1、windows下python的离线扩展模块下载地址为:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

提示:

可以通过python官方的pypi仓库下载linux或windows相应python版本的离线扩展模块:https://pypi.org/

2、下载连接oracle的python离线扩展模块:

3、下载操作excel表的python离线扩展模块:

28.2、安装下载的python离线扩展模块:

1、以管理员的方式运行cmd,进入windows的dos界面,并进入离线python模块所在的目录。

2、安装:

pip isntall cx_Oracle-7.3.0-cp37-cp37m-win_amd64.whl

pip isntall xlrd-1.2.0-py2.py3-none-any.whl

pip isntall xlutils-2.0.0-py2.py3-none-any.whl

pip isntall xlwt-1.3.0-py2.py3-none-any.whl

28.3、安装Oracle客户端:

1、下载oralce11gR2客户端:

下载地址为:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

(1)下载的版本如下(亲测该版本适用于oralce11gR2和oracle10g):

(2)解压该文件,我将其放在C:\Program Files (x86)\目录下。

2、添加环境变量:

3、把oracle客户端的安装文件中以".dll"结尾的文件复制到python的安装目录中:

(1)

(2)

28.4、python代码实现:

# -*- coding: utf-8 -*-

import sys

# 读取excel

import xlrd

# 写入excel

import xlwt

# 操作 Excel 文件的实用工具,如复制、分割、筛选等

from xlutils.copy import copy

# oralc模块

import cx_Oracle as oracle

# 时间模块

import datetime

# 连接数据库的url地址

oracle_url = "net/net@172.16.1.88:1521/orcl"

# 输入文件路劲,文件必须存在

file_in_path = "lc.xls"

# 输出文件路径,自动创建文件,如果文件已存在则自动覆盖

file_out_path = "chang.xls"

# excel的sheet表名

sheet_name = "Sheet1"

# 输出显示内容

class Logger(object):

def __init__(self, filename='default.log', stream=sys.stdout):

self.terminal = stream

# 如果没有就新生成一个文件,存在就覆盖

self.log = open(filename, 'w', encoding="utf-8")

def write(self, message):

self.terminal.write(message)

self.log.write(message)

def flush(self):

pass

# 获取当前时间

now_time = datetime.datetime.now().strftime('%Y-%m-%d')

# 将正常日志和错误日志分别写入到两个文件中

sys.stdout = Logger(now_time + '-normal.log', sys.stdout)

sys.stderr = Logger(now_time + '-error.log', sys.stderr)

try:

# 数据库连接

db = oracle.connect(oracle_url)

# 创建cursor

cursor = db.cursor()

# 打开已存在的表

oldWb = xlrd.open_workbook(file_in_path, formatting_info=True)

# 复制

newWb = copy(oldWb)

# 取sheet表

newWs = newWb.get_sheet(sheet_name)

# 执行sql语句

def exec_sql(sql):

return cursor.execute(sql).fetchall()

# 在excel表中插入数据

def insert_excel(row, col, value):

# 写入数据

newWs.write(row, col, value)

# sql语句

sql = "select * from bhl_user"

# 从数据库中取出的数据

value = exec_sql(sql)[0][1]

# 将取出的数据插入到excel表中第几行第几列,表格的坐标是从0开始计算的

insert_excel(2, 4, value)

print("insert into data success!")

except Exception as msg:

print(msg)

print("insert into data faild!")

# 关闭数据库连接

db.close()

# 保存文件

newWb.save(file_out_path)

28、python3.7(windows)将ORACLE11gR2中的数据取出写入excel表的更多相关文章

  1. vlookup函数基本使用--如何将两个Excel表中的数据匹配;excel表中vlookup函数使用方法将一表引到另一表

    vlookup函数基本使用--如何将两个Excel表中的数据匹配:excel表中vlookup函数使用方法将一表引到另一表 一.将几个学生的籍贯匹配出来‘ 二.使用查找与引用函数 vlookup 三. ...

  2. ListView中的数据表格写入Excel中

    SaveFileDialog sfd = new SaveFileDialog(); sfd.DefaultExt = "xls"; sfd.Filter = "Exce ...

  3. java中的数据导出到Excel表中

    整个项目中导出数据到.Excel的源码 import java.io.BufferedOutputStream; import java.io.FileInputStream; import java ...

  4. Qt中将QTableView中的数据导出为Excel文件

    如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...

  5. WPF-将DataGrid控件中的数据导出到Excel

    原文:WPF-将DataGrid控件中的数据导出到Excel 导出至Excel是非常常见,我们可以用很多类库,例如Aspose.NOPI.Interop,在这里我们使用微软自家的工具.我的WPF绑定的 ...

  6. DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)

    /// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...

  7. 如何使用免费控件将Word表格中的数据导入到Excel中

    我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候, 这时我迫切地需要 ...

  8. c#.net循环将DataGridView中的数据赋值到Excel中,并设置样式

    Microsoft.Office.Interop.Excel.Application excel =                new Microsoft.Office.Interop.Excel ...

  9. phpexcel的写操作将数据库中的数据导入到excel中

    这个版本据说是可以支持excel2007,但是我使用2007编辑的xlsx是无法获得该库的支持.于是乎我就将它转化为2003.感觉支持地很好. 下面介绍一下具体的使用: require_once('. ...

随机推荐

  1. traceroute排查网络故障 www.qq.com排查网络故障网络不通 先ping自己

    网络不通 先ping自己 在ping网关 再ping外网 再ping别人的ip 背景需求 Linux 因为其强大的网络处理能力,被广泛用于网关(实例链接)和服务器(实例链接).实际工作中,快速排查这些 ...

  2. CentOS 7 设置日期和时间 timedatectl

    CentOS 7 设置日期和时间 在CentOS 6版本,时间设置有date.hwclock命令,从CentOS 7开始,使用了一个新的命令timedatectl. timedatectl [root ...

  3. linux进阶之子网划分

    一.定义 当我们对一个网络进行子网划分时,基本上就是将它分成小的网络.比如,当一组IP地址指定给一个公司时,公司可能将该网络"分割成"小的网络,每个部门一个.这样,技术部门和管理部 ...

  4. STM32独立看门狗(IWDG)

    造成程序跑飞,只是程序的正常运行状态被打断而进入死循环,从而使单片机控制的系统无法正常工作.看门狗就是一种专门用于检测单片机程序运行状态的硬件结构. STM32内部自带了两个看门狗,独立看门狗(IWD ...

  5. STM32 串口接收大量数据导致死机

    http://blog.csdn.net/origin333/article/details/49992383 以下文章出自上面的链接.感谢原创作者的分享. 在一项目中,使用STM32作为主控,程序运 ...

  6. Spring 是什么?

    概述 Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好.易于测试.可重用的代码. Spring 框架是一个开源的 Ja ...

  7. F5 api接口开发实战(一)

    本人从18年下旬,开始从事F5负载均衡的自动化开发工作,主要使用python编程语言,开发的F5功能模块为LTM和GTM. F5开发简介 1.F5管理模式 F5的管理模式主要有4种(不包含snmp), ...

  8. windows 映射驱动器 图标显示不正常

    正常图标是这样的: 我的变成了这样: 解决方法: 注册表进入: HKEY_CURRENT_USER\SOFTWARE\Classes\Applications\Explorer.exe\Drives\ ...

  9. httprunner中的分层(api、testcase、testsuite)及实际使用

    一.分层思想 api定义层:最底下的一层是api的定义层testcase层:测试用例层,调用定义层的内容testsuite:测试套件层 二.分层案例设计实现实践举例 1.api 层: 2.testca ...

  10. 狂神说Linux笔记:Vim和账号、用户组、磁盘管理

    什么是Vim编辑器 Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但 ...