Python實現資料庫資料匯入Excel
1 任務簡介
把PostgreSql資料庫中5張表的資料匯出到Excel檔案中,查詢的欄位涉及到5張表,所以需要聯合查詢,其中還有兩張表存在自引用,所以還會更復雜一些。
2 工具
- 使用
psycopg2
模組連線資料庫 - 使用
xlwt
模組操作Excel檔案
2.1 psycopg2
這個模組用法很常規,
- 連線資料庫
- 執行SQL
- 獲取結果
重點在於SQL語句的構造,因為涉及多個表,所以不得已要使用join
,那麼為了考慮效率應當把資料量大的表放在小表的前面。
2.2 xlwt
這個模組用於寫Excel檔案,與之對應的還有xlrd
來完成讀檔案的操作。
用法也很簡單,
- 新建Excel檔案
- 新建sheet表
- 定位起始單元格
- 寫內容
- 儲存&關閉檔案
需要注意的問題有兩點:
- 檔案編碼,新建檔案時需要指明
utf-8
- 表格大小,由於xls檔案最多隻能到65535行,所以表過大的時候要麼換
xlsx
格式,要麼切分成多個表。Python處理xlsx
的模組是xlsxwriter
3 程式碼
具體實現如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import psycopg2
import xlwt
hostIp = '127.0.0.1'
port = '5432'
dbName = 'source'
user = 'liuyueyi'
password = 'password'
sql = '''
select site.name,study.name,sheets.id,sheets.patient_name,crf.label,section.label,form_rows.uid,form_rows.label,sheet_row_values.value
from sheet_row_values
inner join form_rows on form_rows.uid = sheet_row_values.uid
inner join form_groups section on section.id = form_rows.group_id
inner join form_groups crf on section.parent_id = crf.id
inner join sheets on sheets.id = sheet_row_values.sheet_id
inner join departments site on sheets.center_id = site.id
inner join departments study on site.parent_id = study.id;
'''
file = xlwt.Workbook(encoding='utf-8')
sheet1 = file.add_sheet(u'sheet1')
row0 = [u'site_name',u'study_name',u'sheets_id',u'patient_name',u'crf_name',u'section_name',u'form_rows_uid',u'form_rows_label',u'row_value']
for i in range(0, len(row0)):
sheet1.write(0,i,row0[i])
conn = psycopg2.connect(database=dbName,host=hostIp,port=port,user=user,password=password)
cur = conn.cursor()
cur.execute(sql)
rows = cur.fetchall()
for i in range(0,len(rows)):
for j in range(0,len(rows[i])):
sheet1.write(i+1,j,rows[i][j])
file.save('result.xls')
原文連結:https://blog.csdn.net/liuyueyi1995/article/details/60587916
相關推薦
Python實現資料庫資料匯入Excel
1 任務簡介把PostgreSql資料庫中5張表的資料匯出到Excel檔案中,查詢的欄位涉及到5張表,所以需要聯合查詢,其中還有兩張表存在自引用,所以還會更復雜一些。2 工具使用psycopg2模組連線資料庫使用xlwt模組操作Excel檔案2.1 psycopg2這個模組用
Python 實現MySQL資料匯入Excel
一、場景 場景如題,將mysql中的表資料匯入到excel 二、場景實現 1、建立mysql_util.py 將對mysql的操作寫在這個py檔案下 mysql_conf = { 'host': '主機host', 'user': '使用者名稱',
JAVA實現資料庫資料匯入/匯出到Excel(POI技術)
準備工作: 1.匯入POI包:POI下載地址:http://download.csdn.net/detail/zxm1306192988/9522142(重要) 如下 2.匯入匯出到Excel工具類ExcelUtil.java,封裝了POI對Excel的操作 pa
python實現Phoenix批量匯入資料
官網文件: Phoenix provides two methods for bulk loading data into Phoenix tables: Single-threaded client loading tool for CSV formatted data
MVC 實現資料匯入Excel,並在客戶端下載。
1 .在control實現資料匯出到excel 2 在view 中實現檔案下載 匯出excel方法 需要引入 using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using NPOI.HSSF.UserModel;
使用Apache POI技術把資料庫中的資料匯入Excel表
首先還是匯入需要的jar包,上一篇部落格裡有 有兩種實現方法 方法一, 第一步:查詢所有的分割槽資料 第二步:使用POI將資料寫到Excel檔案中 第三步:使用輸出流進行檔案下載 /** *
java實現資料庫資料匯出到excel
excel表格的匯入匯出有兩種方法,一種是jxl和poi 我是用的是jxl,所以要先下個Jar包,可以去搜索下載一個。package com.wenliang.admin.web;import java.io.File; import jxl.*; import jx
將資料庫資料入excel中併發送郵件
我們有個政府專案,程式碼和資料庫都在政府那邊,我就開了一個後門,每天定時將資料庫資料發到我們這邊來,然後定時把這個檔案再刪除掉,在中秋這一天專案經理給我打電話問我說資料庫資料的情況,並且讓我們這邊一個開發人員幫忙統計增量是多少,我就萌生了一個想發,過節都不讓人過好,還想著公司的事情,於是
python實現資料庫序列化儲存帶有漢字的列表
import pymysql import json b = ["你","好"] b = json.dumps(b,ensure_ascii=False) conn = pymysql.connect(host="",port=3306,user='',password='',db='',char
用SyncNavigator實現資料庫資料定期同步實現
WWW.SyncNavigator.CN 資料同步的軟體 SyncNavigator是一款專門用於SqlServer、Mysql資料同步的軟體,由國內頂級開發團隊開發完成,經歷8年逐步完善,目前具備強大的資料同步功能,國內很多大型連鎖超市,企業,公司都在用Sy
Python實現分發資料塊到多臺伺服器上
程式碼如下: # coding: utf-8 import paramiko import re import os from time import sleep # 定義一個類,表示一臺遠端linux主機 # 參考https://www.cnblogs.com/haigege/p/55174
PHP實現資料庫資料的分頁
一、實現思路: 1. 使用bootstrap框架,實現資料庫的連線,以及sql指令的執行; 2.寫html中的table程式碼,用bootstrap中的表格樣式進行修飾; 3.在分頁的連結上新增引數; 4.獲得當前的頁號; 5.控制翻頁(向上不得超過第一頁,向下不得超過最後一頁)
Revit二次開發_將資料匯入Excel
有時需要將Revit模型的一些資訊提取到Excel中進行處理或者是作為記錄進行儲存,但也許是因為Revit的資料結構相對複雜,並不支援直接將資料匯出Excel,所以平時通過二次開發將資訊輸出到Excel中。 常使用的輸出方法有三個,分別是com元件;NPOI庫;Epplus
Python實現平面資料分類
import numpy as np import matplotlib.pyplot as plt from testCases import * import sklearn import sklearn.datasets import sklearn.linear_
Python: 實現bitmap資料結構
這是根據網上看的一篇文章,對程式碼進行了修改。 bitmap是很常用的資料結構,比如用於Bloom Filter中、用於無重複整數的排序等等。bitmap通常基於陣列來實現,陣列中每個元素可以看成是一系列二進位制數,所有元素組成更大的二進位制集合。對於Python來說,
Vue+element UI實現表格資料匯出Excel元件
介紹 這是一個可以將頁面中的表格資料匯出為Excel檔案的功能元件,該元件一般與表格一起使用,將表格資料傳給元件,然後通過點選元件按鈕可將表格中的資料匯出成Excel檔案。 使用方法 由於封裝該元件內部引用了xlsx.js,file-saver.js和elementUI,因此在使用該元件時,請先安裝如下
基於VS2015、EF6連線Sqlite,Linq和部分lambda實現資料庫資料的基本增刪改查
首先引用管理Nuget包,將所需要的EntityFramework包以及Sqlite的包下載好, 只需要下載SQlite包,其他的依賴包會自動下載。 之後會自動生成一個app.config配置檔案 但是在原本生成的config檔案中沒有 <provider
Java操作json資料匯入Excel
話不多說,直接上程式碼 package com.linkage.bss.crm.commons; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.io.File
python開發電影查詢系統(一)—python實現後臺資料
爬蟲也學了很長一段時間了,雖然有些東西還不是很熟悉,但使用python和Django自己做了一個專案,即爬取http://www.bd-film.com/的電影資訊,並將資料儲存到本地,再通過Django做一個查詢入口進行查詢。 我將程式碼實現大致分為三部
Swaggy教你用python實現NBA資料統計的爬取
相信很多喜歡NBA的小夥伴們經常會關注NBA的資料統計,今天我就用虎撲NBA的得分榜為例,實現NBA資料的簡單爬取。https://nba.hupu.com/stats/players是虎撲體育的NBA球員得分榜:當我們右鍵檢視該網站的原始碼時,會發現所有的資料統計都存放在&