利用python把EXCEL檔案匯入Oracle

2021-10-18 03:06:18 字數 3713 閱讀 7487

一、資料準備

1、excel資料準備(包含字串、整數、小數、科學計數法、空值)

2、oracle建表

二、**注意:必要時需要先刪除資料庫中資料再導數入庫。

#!/usr/bin/env python

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

import cx_oracle

import csv

import xlrd

import os

import re

class

importoracle

(object):

definoracle

(self)

:pass

defconnoracle

(self)

: conn = cx_oracle.connect(

"使用者名稱"

,"密碼"

,"ip:埠/服務名"

) cursor = conn.cursor(

)# 給字元資料加上引號

fields =

['\''

+i+'\''

for i in self.title]

# 從第一列資料開始

fields_str =

', '

.join(fields[0:

])#print(fields_str)

for i in self.data:

print

(i)# 插入引號,確保格式正確

a=['\''

+str

(b)+

'\''

for b in i]

value =

','.join(a[0:

])# 去掉資料中的[null]

sql =

'insert into %s values(%s)'

%(self.table_name, re.sub(

'\[null\]+',''

, value)

)# 列印生成的sql

print

(sql+

'\n\n\n'

)# 執行sql語句並提交

cursor.execute(sql)

conn.commit(

)# 全部提交後關閉連線,釋放游標

cursor.close(

) conn.close(

)class

importoraclecsv

(importoracle)

:def

inoracle

(self)

: contents=

with

open

(self.filename,

'r')

as f:

reader = csv.reader(f)

# 將科學計數現實的數字顯示

for i in reader:

# 獲取第一行為列名

title = contents[0]

# 獲取資料,去掉第一行

data = contents[1:

]return

(title, data)

class

importoracleexcel

(importoracle)

:def

inoracle

(self)

: wb = xlrd.open_workbook(self.filename)

#使用第乙個sheet表

sheet1 = wb.sheet_by_index(0)

title = sheet1.row_values(0)

#獲取第一行作為表頭

data =

[sheet1.row_values(row)

for row in

range(1

, sheet1.nrows)

]print

(data)

return

(title, data)

#匯入非excel文件報錯'undefine file type'

class

importerror

(importoracle)

:def

inoracle

(self)

:print

('undefine file type'

)return

0class

choosefactory

(object):

choose =

choose[

'csv'

]= importoraclecsv(

) choose[

'xlsx'

]= importoracleexcel(

) choose[

'xls'

]= importoracleexcel(

)def

choosefile

(self, ch)

:if ch in self.choose:

op = self.choose[ch]

else

: op = importerror(

)return op

if __name__ ==

"__main__"

: os.chdir(r'c:\\'

)#改變當前工作目錄到指定的路徑

file_name =

'fxm_test.xlsx'

table_name =

'fxm_test'

#獲取資料夾型別

op = file_name.split(

'.')[-

1]factory = choosefactory(

) cal = factory.choosefile(op)

cal.filename = file_name

(cal.title, cal.data)

= cal.inoracle(

) cal.table_name = table_name

cal.connoracle(

)

三、結果四、參考資料excel檔案匯入oracle(python指令碼匯入)

利用Python處理Excel資料

資料清洗 資料預處理 資料提取 資料篩選 資料彙總 資料統計 import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime from pandas import...

利用Python處理Excel資料

目錄 資料清洗 資料預處理 資料提取 資料篩選 資料彙總 資料統計 import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime from pandas imp...

python統計excel利用pandans的分組

python統計excel利用pandans的分組,其中還用列表資料求差集 csv資料結構 有三個按照日期統計的csv 需要統計出這三張csv按照areaid缺少的type和bdtype 其中type 1,2,3,4 bdtype 1,3,4 原始碼如下 第一步資料初步處理刪除非必須列 coding...