亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Python中xlsxwriter庫(kù)的基本操作

 更新時(shí)間:2023年11月18日 08:28:07   作者:懸崖上的金魚(yú)  
xlsxwriter是一個(gè)用于創(chuàng)建和修改Excel文件(.xlsx)的Python庫(kù),它提供了豐富的功能,可以創(chuàng)建復(fù)雜的Excel工作簿,本文為大家介紹了它的一些基本操作,希望對(duì)大家有所幫助

xlsxwriter是一個(gè)用于創(chuàng)建和修改Excel文件(.xlsx)的Python庫(kù)。它提供了豐富的功能,可以創(chuàng)建復(fù)雜的Excel工作簿,包括工作表、圖表、圖像,以及設(shè)置單元格樣式和格式等。

創(chuàng)建一個(gè)新的Excel文件并添加工作表

import xlsxwriter

# 創(chuàng)建一個(gè)新的Excel文件
workbook = xlsxwriter.Workbook('example.xlsx')

# 添加一個(gè)名為"Sheet1"的工作表
worksheet = workbook.add_worksheet("Sheet1")

# 在工作表中寫(xiě)入數(shù)據(jù)
worksheet.write('A1', '姓名')
worksheet.write('B1', '年齡')
worksheet.write('A2', '張三')
worksheet.write('B2', 25)
worksheet.write('A3', '李四')
worksheet.write('B3', 30)

# 保存并關(guān)閉Excel文件
workbook.close()

設(shè)置單元格樣式和格式

import xlsxwriter

workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()

# 創(chuàng)建一個(gè)加粗的格式對(duì)象
bold_format = workbook.add_format({'bold': True})

# 在單元格中寫(xiě)入數(shù)據(jù),并應(yīng)用加粗格式
worksheet.write('A1', '標(biāo)題', bold_format)
worksheet.write('A2', '數(shù)據(jù)1')
worksheet.write('B2', 100)

# 設(shè)置列寬和行高
worksheet.set_column('A:B', 15)
worksheet.set_row(0, 20)

workbook.close()

添加圖表

import xlsxwriter

workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()

# 寫(xiě)入一些數(shù)據(jù)
data = [10, 20, 30, 40, 50]
worksheet.write_column('A1', data)

# 創(chuàng)建一個(gè)柱狀圖對(duì)象
chart = workbook.add_chart({'type': 'column'})

# 添加數(shù)據(jù)系列到圖表中
chart.add_series({
    'values': '=Sheet1!$A$1:$A$5',
    'name': '數(shù)據(jù)',
})

# 將圖表插入工作表中
worksheet.insert_chart('C1', chart)

workbook.close()

寫(xiě)入MySQL數(shù)據(jù)到Excel

在實(shí)際工作中,我們經(jīng)常需要將數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到Excel表格中進(jìn)行進(jìn)一步的分析和處理。Python中的pymysql和xlsxwriter庫(kù)提供了很好的解決方案,使得這一過(guò)程變得簡(jiǎn)單而高效。

建立數(shù)據(jù)庫(kù)連接

首先,我們需要使用pymysql庫(kù)來(lái)建立與MySQL數(shù)據(jù)庫(kù)的連接,并指定要連接的數(shù)據(jù)庫(kù)名稱、用戶名和密碼。

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    database='caiwu'
)

編寫(xiě)SQL查詢語(yǔ)句

接下來(lái),我們可以編寫(xiě)需要執(zhí)行的SQL查詢語(yǔ)句,以獲取所需的數(shù)據(jù)。

query = "SELECT * FROM report_品名"

創(chuàng)建Excel文件對(duì)象和工作表對(duì)象

使用xlsxwriter庫(kù),我們可以創(chuàng)建一個(gè)新的Excel文件和工作表對(duì)象,準(zhǔn)備將數(shù)據(jù)寫(xiě)入其中。

import xlsxwriter

workbook = xlsxwriter.Workbook('output.xlsx')
worksheet = workbook.add_worksheet()

創(chuàng)建游標(biāo)對(duì)象并執(zhí)行SQL查詢

創(chuàng)建游標(biāo)對(duì)象,執(zhí)行SQL查詢語(yǔ)句,并獲取查詢結(jié)果的列名。

cursor = connection.cursor()
cursor.execute(query)

column_names = [i[0] for i in cursor.description]

將查詢結(jié)果寫(xiě)入Excel文件

遍歷查詢結(jié)果,并將數(shù)據(jù)寫(xiě)入到Excel文件中。在此過(guò)程中,我們還可以對(duì)時(shí)間字段進(jìn)行格式化處理。

import datetime

data = cursor.fetchall()

for col_index, col_name in enumerate(column_names):
    worksheet.write(0, col_index, col_name)

for row_index, row_data in enumerate(data):
    for col_index, col_data in enumerate(row_data):
        if isinstance(col_data, datetime.datetime):
            col_data = col_data.strftime("%Y-%m-%d %H:%M:%S")
        worksheet.write(row_index + 1, col_index, col_data)

關(guān)閉游標(biāo)、數(shù)據(jù)庫(kù)連接和Excel文件對(duì)象

在數(shù)據(jù)導(dǎo)出完成后,記得關(guān)閉游標(biāo)、數(shù)據(jù)庫(kù)連接和Excel文件對(duì)象,釋放資源。

cursor.close()
connection.close()
workbook.close()

總結(jié)

通過(guò)以上步驟,我們使用Python成功地將MySQL查詢結(jié)果導(dǎo)出到Excel文件中。這種方法不僅簡(jiǎn)單方便,而且還可以輕松實(shí)現(xiàn)定制化的數(shù)據(jù)處理和格式化操作。

完整代碼

import pymysql
import xlsxwriter
import datetime

# 建立數(shù)據(jù)庫(kù)連接
connection = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    database='caiwu'
)

# 編寫(xiě)SQL查詢語(yǔ)句
query = "SELECT * FROM report_品名"

# 創(chuàng)建Excel文件對(duì)象
workbook = xlsxwriter.Workbook('output2.xlsx')

# 創(chuàng)建Excel工作表對(duì)象
worksheet = workbook.add_worksheet()

# 創(chuàng)建游標(biāo)對(duì)象
cursor = connection.cursor()

# 執(zhí)行SQL查詢
cursor.execute(query)

# 獲取查詢結(jié)果的列名
column_names = [i[0] for i in cursor.description]

# 將列名寫(xiě)入Excel文件的第一行
for col_index, col_name in enumerate(column_names):
    worksheet.write(0, col_index, col_name)

# 獲取查詢結(jié)果中的數(shù)據(jù)
data = cursor.fetchall()

# 將數(shù)據(jù)寫(xiě)入Excel文件中
for row_index, row_data in enumerate(data):
    for col_index, col_data in enumerate(row_data):
        # 判斷數(shù)據(jù)類型是否為時(shí)間類型
        if isinstance(col_data, datetime.datetime):
            col_data = col_data.strftime("%Y-%m-%d %H:%M:%S")  # 將時(shí)間字段轉(zhuǎn)換為字符串
        worksheet.write(row_index + 1, col_index, col_data)

# 關(guān)閉游標(biāo)對(duì)象
cursor.close()

# 關(guān)閉數(shù)據(jù)庫(kù)連接
connection.close()

# 關(guān)閉Excel文件對(duì)象
workbook.close()

到此這篇關(guān)于詳解Python中xlsxwriter庫(kù)的基本操作的文章就介紹到這了,更多相關(guān)Python xlsxwriter庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Tensorflow分批量讀取數(shù)據(jù)教程

    Tensorflow分批量讀取數(shù)據(jù)教程

    今天小編就為大家分享一篇Tensorflow分批量讀取數(shù)據(jù)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • django創(chuàng)建簡(jiǎn)單的頁(yè)面響應(yīng)實(shí)例教程

    django創(chuàng)建簡(jiǎn)單的頁(yè)面響應(yīng)實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于django如何創(chuàng)建簡(jiǎn)單的頁(yè)面響應(yīng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 淺析python打包工具distutils、setuptools

    淺析python打包工具distutils、setuptools

    python包在開(kāi)發(fā)中十分常見(jiàn),一般的使用套路是所有的功能做一個(gè)python模塊包,打包模塊,然后發(fā)布,安裝使用。這篇文章給大家介紹了python打包工具distutils、setuptools的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2018-04-04
  • python實(shí)現(xiàn)socket客戶端和服務(wù)端簡(jiǎn)單示例

    python實(shí)現(xiàn)socket客戶端和服務(wù)端簡(jiǎn)單示例

    這篇文章主要介紹了python實(shí)現(xiàn)socket客戶端和服務(wù)端簡(jiǎn)單示例,需要的朋友可以參考下
    2014-02-02
  • 如何升級(jí)python包到指定版本

    如何升級(jí)python包到指定版本

    這篇文章主要介紹了如何升級(jí)python包到指定版本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • python爬蟲(chóng)分布式獲取數(shù)據(jù)的實(shí)例方法

    python爬蟲(chóng)分布式獲取數(shù)據(jù)的實(shí)例方法

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python爬蟲(chóng)分布式獲取數(shù)據(jù)的實(shí)例方法,有興趣的朋友們可以參考下。
    2020-11-11
  • python進(jìn)階教程之函數(shù)參數(shù)的多種傳遞方法

    python進(jìn)階教程之函數(shù)參數(shù)的多種傳遞方法

    這篇文章主要介紹了python進(jìn)階教程之函數(shù)參數(shù)的多種傳遞方法,包括關(guān)鍵字傳遞、默認(rèn)值傳遞、包裹位置傳遞、包裹關(guān)鍵字混合傳遞等,需要的朋友可以參考下
    2014-08-08
  • 一文詳解凱撒密碼的原理及Python實(shí)現(xiàn)

    一文詳解凱撒密碼的原理及Python實(shí)現(xiàn)

    凱撒密碼是古羅馬愷撒大帝用來(lái)對(duì)軍事情報(bào)進(jìn)行加密的算法,它采用了替換方法對(duì)信息中的每一個(gè)英文字符循環(huán)替換為字母表序列該字符后面第三個(gè)字符。本文主要為大家講解了凱撒密碼的原理及實(shí)現(xiàn),需要的可以參考一下
    2022-08-08
  • python機(jī)器學(xué)習(xí)基礎(chǔ)線性回歸與嶺回歸算法詳解

    python機(jī)器學(xué)習(xí)基礎(chǔ)線性回歸與嶺回歸算法詳解

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)基礎(chǔ)線性回歸與嶺回歸算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • PyQt實(shí)現(xiàn)異步數(shù)據(jù)庫(kù)請(qǐng)求的實(shí)戰(zhàn)記錄

    PyQt實(shí)現(xiàn)異步數(shù)據(jù)庫(kù)請(qǐng)求的實(shí)戰(zhàn)記錄

    開(kāi)發(fā)軟件的時(shí)候不可避免要和數(shù)據(jù)庫(kù)發(fā)生交互,但是有些 SQL 請(qǐng)求非常耗時(shí),如果在主線程中發(fā)送請(qǐng)求,可能會(huì)造成界面卡頓,本文將介紹一種讓數(shù)據(jù)庫(kù)請(qǐng)求變得和前端的 ajax 請(qǐng)求一樣簡(jiǎn)單,希望對(duì)大家有所幫助
    2023-12-12

最新評(píng)論