最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python創(chuàng)建并保存Excel文件到字節(jié)串

 更新時間:2025年12月15日 08:52:16   作者:大丸子  
在日常的數(shù)據(jù)分析與業(yè)務(wù)處理過程中,Excel 文件依然是最常用的數(shù)據(jù)存儲與展示工具,在一些自動化場景下,我們希望能夠通過代碼生成 Excel 文件,并將其內(nèi)容直接保存為字節(jié)串以便傳輸、存儲或進(jìn)一步處理,本文將詳細(xì)介紹如何使用Python創(chuàng)建并保存Excel文件到字節(jié)串

在日常的數(shù)據(jù)分析與業(yè)務(wù)處理過程中,Excel 文件依然是最常用的數(shù)據(jù)存儲與展示工具。無論是銷售報表、財務(wù)明細(xì)還是庫存清單,Excel 都能直觀地展示數(shù)據(jù)。然而,在一些自動化場景下,我們希望能夠通過代碼生成 Excel 文件,并將其內(nèi)容直接保存為字節(jié)串(byte stream)以便傳輸、存儲或進(jìn)一步處理。這種方式特別適用于 Web 后端、云存儲或者接口返回 Excel 文件的場景。

本文將詳細(xì)介紹如何使用 Free Spire.XLS for Python 創(chuàng)建 Excel 工作簿、寫入數(shù)據(jù),并將生成的 Excel 文件保存到內(nèi)存中的字節(jié)串。我們會通過一個銷售數(shù)據(jù)示例,從零開始講解整個流程。

通過 pip 安裝:

pip install spire.xls.free

1. 初始化工作簿并創(chuàng)建工作表

首先,我們需要創(chuàng)建一個新的 Excel 工作簿,并添加一個工作表來存放數(shù)據(jù)。為了保證表格整潔,默認(rèn)生成的空工作表會被移除。

from spire.xls import Workbook

# 創(chuàng)建一個新的工作簿
workbook = Workbook()

# 移除默認(rèn)創(chuàng)建的空工作表
workbook.Worksheets.Clear()

# 添加一個新的工作表,命名為“銷售數(shù)據(jù)”
sheet = workbook.Worksheets.Add("銷售數(shù)據(jù)")

說明
Workbook 對象表示整個 Excel 文件,Worksheets.Add() 方法用于添加工作表,并可通過名稱區(qū)分不同表格。這樣,我們就可以在代碼中完全控制 Excel 文件的結(jié)構(gòu)。

2. 寫入表頭與數(shù)據(jù)

接下來,我們在工作表中寫入表頭信息,并填充示例銷售數(shù)據(jù)。表頭信息包括“產(chǎn)品名稱”、“銷售額”和“銷售日期”。

# 寫入表頭
sheet.Range["A1"].Value = "產(chǎn)品名稱"
sheet.Range["B1"].Value = "銷售額"
sheet.Range["C1"].Value = "銷售日期"

# 示例數(shù)據(jù)
data = [
    ("筆記本電腦", 1200.50, "2023-10-01"),
    ("智能手機(jī)", 800.75, "2023-10-05"),
    ("平板電腦", 500.00, "2023-10-10"),
    ("顯示器", 300.20, "2023-10-15"),
    ("鍵盤", 75.99, "2023-10-20"),
]

# 寫入數(shù)據(jù)
for i, row_data in enumerate(data):
    row_index = i + 2  # 從第二行開始寫入數(shù)據(jù)
    sheet.Range[row_index, 1].Value = row_data[0]  # 產(chǎn)品名稱
    sheet.Range[row_index, 2].NumberValue = row_data[1]  # 銷售額(數(shù)字類型)
    sheet.Range[row_index, 3].Value = row_data[2]  # 銷售日期

關(guān)鍵說明

  • Range[row, col] 用于獲取單元格位置,行列索引從 1 開始。
  • NumberValue 屬性確保數(shù)值類型的數(shù)據(jù)在 Excel 中可進(jìn)行計算。
  • 使用 enumerate 可以方便地循環(huán)填充數(shù)據(jù),同時自動計算行索引。

3. 簡單格式設(shè)置

為了讓表格更美觀,我們可以設(shè)置表頭字體加粗,并讓列寬自適應(yīng)內(nèi)容。

# 設(shè)置表頭字體加粗
sheet.Range["A1:C1"].Style.Font.IsBold = True

# 自動調(diào)整列寬
sheet.AutoFitColumn(1)
sheet.AutoFitColumn(2)
sheet.AutoFitColumn(3)

說明
通過 AutoFitColumn() 方法,列寬會根據(jù)內(nèi)容自動調(diào)整,避免文字顯示不完整的問題;表頭加粗則讓數(shù)據(jù)更易區(qū)分。

4. 將 Excel 文件保存到字節(jié)串

在某些應(yīng)用場景下,我們不希望直接生成文件,而是將 Excel 內(nèi)容保存到內(nèi)存中的字節(jié)串,以便后續(xù)操作或網(wǎng)絡(luò)傳輸。

import io
from spire.xls import FileFormat, Stream

# 創(chuàng)建 BytesIO 對象
excel_stream = io.BytesIO()

# 創(chuàng)建 Stream 對象
excelStream = Stream()

# 將工作簿保存到內(nèi)存流中,格式為 XLSX(FileFormat.Version2016)
workbook.SaveToStream(excelStream, FileFormat.Version2013)

# 將內(nèi)存流保存到文件用于測試
excelStream.Save("output/output.xlsx")

# 將內(nèi)存流轉(zhuǎn)換為字節(jié)串
excel_stream.write(excelStream.ToArray())

# 獲取字節(jié)串
excel_bytes = excel_stream.getvalue()

# 釋放資源
workbook.Dispose()
excel_stream.close()

print(f"生成的Excel字節(jié)串長度: {len(excel_bytes)} 字節(jié)")

說明

  • BytesIO 提供了一個內(nèi)存流,可以當(dāng)作文件對象操作。
  • Stream 類是 Spire.XLS 提供的用于保存文件內(nèi)容到內(nèi)存流的類。
  • SaveToStream() 方法將工作簿內(nèi)容寫入流中,FileFormat.Version2016 表示保存為標(biāo)準(zhǔn) XLSX 文件。
  • excel_bytes 即為完整的 Excel 文件內(nèi)容,可直接用于 HTTP 返回、存儲數(shù)據(jù)庫或其他處理。

生成文件預(yù)覽:

總結(jié)

通過本文示例,我們展示了如何使用 Python 和 Spire.XLS 完整地生成 Excel 文件、寫入數(shù)據(jù)、進(jìn)行基礎(chǔ)格式設(shè)置,并將文件內(nèi)容保存為內(nèi)存字節(jié)串。這種方法在 Web 后端、數(shù)據(jù)接口、自動報表生成等場景下非常實(shí)用,既避免了中間文件存儲,也提高了處理效率。

掌握 Workbook、Worksheet、Range 等核心類和屬性,能夠讓你輕松實(shí)現(xiàn) Excel 自動化處理,減少人工操作,提高工作效率。同時,通過將 Excel 文件保存為字節(jié)串,還能滿足更復(fù)雜的業(yè)務(wù)需求,例如生成下載文件流、上傳云端存儲或進(jìn)行二進(jìn)制處理。

以上就是使用Python創(chuàng)建并保存Excel文件到字節(jié)串的詳細(xì)內(nèi)容,更多關(guān)于Python創(chuàng)建并保存Excel到字節(jié)串的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Selenium定位元素操作示例

    Selenium定位元素操作示例

    這篇文章主要介紹了Selenium定位元素操作,結(jié)合實(shí)例形式總結(jié)分析了Selenium通過ID、name、XPath、標(biāo)簽名稱、類名等進(jìn)行元素定位操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • 利用Python實(shí)現(xiàn)可回滾方案的示例代碼

    利用Python實(shí)現(xiàn)可回滾方案的示例代碼

    很多項目翻車不是因為不會做,而是走錯了方向卻沒法回頭,技術(shù)選型失敗的風(fēng)險我們都清楚,但真正能提前規(guī)劃“回滾方案”的人不多,本文從實(shí)際項目出發(fā),教你如何用 Python 構(gòu)建一套“可回退、可灰度、可對比”的技術(shù)架構(gòu)方案,附帶完整 Demo,需要的朋友可以參考下
    2025-05-05
  • PlayWright 元素拖動的實(shí)現(xiàn)示例

    PlayWright 元素拖動的實(shí)現(xiàn)示例

    本文主要介紹了使用PlayWright實(shí)現(xiàn)元素拖動效果的步驟,包括定位元素、獲取位置、按住元素、移動鼠標(biāo)到指定位置并釋放鼠標(biāo),感興趣的可以了解一下
    2026-01-01
  • Python格式化輸出之format用法詳解

    Python格式化輸出之format用法詳解

    Python中格式化字符串目前有兩種陣營:%和format,這篇文章主要給大家介紹了關(guān)于Python格式化輸出之format用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • 基于python 二維數(shù)組及畫圖的實(shí)例詳解

    基于python 二維數(shù)組及畫圖的實(shí)例詳解

    下面小編就為大家分享一篇基于python 二維數(shù)組及畫圖的實(shí)例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python裝飾器decorator實(shí)際應(yīng)用與高級使用詳解

    Python裝飾器decorator實(shí)際應(yīng)用與高級使用詳解

    本文系統(tǒng)講解Python裝飾器,強(qiáng)調(diào)其作為函數(shù)包裝工具的核心作用,通過不修改原函數(shù)代碼實(shí)現(xiàn)功能擴(kuò)展,適用于日志、計時、認(rèn)證等場景,利用函數(shù)一等公民特性提升代碼復(fù)用性與可維護(hù)性
    2025-07-07
  • Python使用jupyter notebook查看ipynb文件過程解析

    Python使用jupyter notebook查看ipynb文件過程解析

    這篇文章主要介紹了Python使用jupyter notebook查看ipynb文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • pytorch 6 batch_train 批訓(xùn)練操作

    pytorch 6 batch_train 批訓(xùn)練操作

    這篇文章主要介紹了pytorch 6 batch_train 批訓(xùn)練操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 如何通過神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)線性回歸的擬合

    如何通過神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)線性回歸的擬合

    這篇文章主要介紹了如何通過神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)線性回歸的擬合問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解python環(huán)境安裝selenium和手動下載安裝selenium的方法

    詳解python環(huán)境安裝selenium和手動下載安裝selenium的方法

    這篇文章主要介紹了詳解python環(huán)境安裝selenium和手動下載安裝selenium的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評論

廊坊市| 武川县| 兴化市| 永修县| 都兰县| 家居| 密云县| 中牟县| 衡阳县| 抚宁县| 临安市| 罗城| 平南县| 湘西| 宝丰县| 渭源县| 博湖县| 金秀| 平潭县| 茶陵县| 梨树县| 榆树市| 忻城县| 长白| 阿克陶县| 格尔木市| 和硕县| 合水县| 武穴市| 晴隆县| 个旧市| 工布江达县| 郓城县| 万安县| 游戏| 清苑县| 长阳| 永修县| 武宣县| 肥东县| 施秉县|