程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python以表格文件導出數據庫的數據

編輯:Python

看了很多教程發現都非常的繁瑣,我一直以來力求簡潔
花了數小時時間,終於整理出較為完美的方案

系統:debian9

一、打開3306端口

vim /etc/mysql/mariadb.conf.d/50-server.cnf


取消掉上圖中的這行代碼的注釋

二、編寫python代碼

import pymysql
from openpyxl import Workbook
def outfile(db,table):
#鏈接database
connection = pymysql.connect(host="",user="root",password="",database=db,charset="utf8",port=3306)
#創建可執行sql語句的游標
cursor = connection.cursor()
#查詢
sql = 'select * from {};'.format(table)
#執行
count = cursor.execute(sql)
#獲取全部結果
result = cursor.fetchall()
#print(result[0])
#獲取MySQL中的數據字段名稱
fields = cursor.description
#創建一個excel
wb = Workbook()
#創建一個sheet
sheet = wb.active
# 寫上字段信息
headers = ['A1','B1','C1','D1']
for index,i in enumerate(fields):
sheet[headers[index]] = i[0]
# 獲取並寫入數據段信息
for index,i in enumerate(result):
sheet.append(list(i))
print('正在保存第' + str(index) + '列信息')
#wb.save(f"/storage/emulated/0/{table}.xlsx")
wb.save(f"C:/Users/Administrator/Desktop/{table}.xls")
db,table = input("請輸入數據庫名和表名:").split(',')
outfile(db,table)

遇到的各種坑:
1.本地服務器mysql的3306端口得打開
2.內網穿透的配置文件端口指定3306
3.pymysql.connect中的password為數據庫密碼而不是root用戶的密碼
4.由於我是內網穿透pymysql.connect中添加port參數為內網穿透提供的公網ip對應端口


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved