問題
如果文案格式是統一的,是否可以通過Python格式化輸出doc/md的文檔?
能用代碼搞定的,盡力不手工
思路
首先,數據已經錄入庫,需要python能讀取數據庫,可使用mysql-connector
其次,格式化輸出的文檔,肯定需要文件讀寫操作,需使用os
接著,考慮到各大平臺多數支持markdown格式,優先輸出md格式文檔。若輸出doc,需使用docx
補充,python一鍵執行,分頁數據操作,接收外部參數,需使用sys
編碼
分頁獲取數據庫內容
import mysql.connector
# 數據庫中page頁數據
def fetch_data_from_db(page):
cmd = 'select * from xxx order by id limit ' + str(page * 50) + ', ' + str(50)
conn = mysql.connector.connect(user='xxx', password='xxx', database='xxx')
cursor = conn.cursor()
cursor.execute(cmd)
values = cursor.fetchall()
conn.commit()
cursor.close()
conn.close()
return values
格式化輸出md文檔,md中添加表格樣式
import mysql.connector
# 數據庫中page頁數據
def fetch_data_from_db(page):
cmd = 'select * from xxx order by id limit ' + str(page * 50) + ', ' + str(50)
conn = mysql.connector.connect(user='xxx', password='xxx', database='xxx')
cursor = conn.cursor()
cursor.execute(cmd)
values = cursor.fetchall()
conn.commit()
cursor.close()
conn.close()
return values
格式話輸出doc文檔
from docx import Document
from docx.shared import Cm
def export_format_md(page, books):
fileName = '善齋書屋第' + str(page) + '期.docx'
document = Document()
table = document.add_table(rows = 51, cols = 3) # 設置行列數
table.cell(0, 0).text = "索引"
table.cell(0, 1).text = "作者"
table.cell(0, 2).text = "書名"
for index, book in enumerate(books):
table.cell(index+1, 0).text = "{0:05d}".format(book[0])
table.cell(index+1, 1).text = book[2]
table.cell(index+1, 2).text = book[1]
document.save(fileName)
外部傳參獲取
if __name__ == '__main__':
args = sys.argv
if len(args) == 2:
# 獲取分頁
page = args[1]
books = fetch_data_from_db(page)
export_format_md(page, books)
一鍵執行
總結
到此這篇關于Python數據庫格式化輸出文檔的文章就介紹到這了,更多相關Python數據庫格式化輸出內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python中日期和時間格式化輸出的方法小結
- python中的格式化輸出用法總結
- Python中使用pprint函數進行格式化輸出的教程
- python格式化輸出保留2位小數的實現方法
- Python實現小數轉化為百分數的格式化輸出方法示例
- 在python中用print()輸出多個格式化參數的方法
- python常見的格式化輸出小結
- Python格式化輸出%s和%d