1. 程式人生 > >Python實現資料庫資料匯入Excel

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球員得分榜:當我們右鍵檢視該網站的原始碼時,會發現所有的資料統計都存放在&