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

Python實現(xiàn)將列表導出為Excel文件

 更新時間:2025年12月29日 08:32:21   作者:Eiceblue  
在 Python 數(shù)據(jù)處理場景中,將列表(List)數(shù)據(jù)導出為 Excel 文件是高頻需求,本文將演示如何用 Free Spire.XLS for Python 實現(xiàn)列表轉(zhuǎn) Excel,感興趣的小伙伴可以了解下

在 Python 數(shù)據(jù)處理場景中,將列表(List)數(shù)據(jù)導出為 Excel 文件是高頻需求(如數(shù)據(jù)報表、批量數(shù)據(jù)導出等)。相比于傳統(tǒng)的openpyxlxlwt等庫,Free Spire.XLS for Python 是一款免費的 Excel 處理庫,無需依賴 Microsoft Excel,支持完整的 Excel 文件創(chuàng)建、編輯和格式設(shè)置,尤其適合新手快速實現(xiàn)列表到 Excel 的轉(zhuǎn)換。

本文將從環(huán)境準備、基礎(chǔ)示例到進階優(yōu)化演示如何用 Free Spire.XLS for Python 實現(xiàn)列表轉(zhuǎn) Excel,覆蓋以下核心場景:

  • 基礎(chǔ)實戰(zhàn):導出一維列表到 Excel(單列)
  • 進階實戰(zhàn):導出二維列表到 Excel(帶表頭)
  • 實戰(zhàn)拓展:導出字典列表到 Excel(貼合業(yè)務(wù)場景)

1. 安裝免費庫

Free Spire.XLS for Python 支持 Python 3.6 及以上版本,通過 pip即可安裝:

pip install Spire.XLS.Free

2. 基礎(chǔ)實戰(zhàn):導出一維列表到 Excel(單列)

實現(xiàn)思路

  • 創(chuàng)建空白工作簿,獲取默認工作表;
  • 遍歷一維列表,將每個元素寫入 Excel 的指定列(如A列);
  • 保存 Excel 文件并釋放資源。

Python 代碼

from spire.xls import *
from spire.xls.common import *

# 定義要轉(zhuǎn)換的一維列表
one_dimensional_list = ["Python", "Java", "C++", "JavaScript", "Go"]

# 1. 創(chuàng)建工作簿對象
workbook = Workbook()
# 2. 獲取第一個工作表(默認創(chuàng)建)
worksheet = workbook.Worksheets[0]
# 3. 設(shè)置工作表名稱
worksheet.Name = "編程語言列表"

# 4. 遍歷列表,寫入Excel(從第1行第1列開始)
for index, value in enumerate(one_dimensional_list):
    # 行號從1開始
    row = index + 1
    # 寫入A列(第1列)
    worksheet.Range[row, 1].Text = value

# 5. 保存Excel文件(支持.xlsx/.xls/.xlsm等格式)
output_path = "一維列表轉(zhuǎn)Excel.xlsx"
workbook.SaveToFile(output_path, FileFormat.Version2016)

# 6. 釋放資源(重要,避免內(nèi)存泄漏)
workbook.Dispose()

print(f"一維列表已成功導出到:{output_path}")

代碼解析

  • Workbook():創(chuàng)建 Excel 工作簿對象,相當于新建一個 Excel 文件;
  • Worksheets[0]:獲取工作簿中第一個工作表(索引從0開始);
  • Range[row, col]:定位 Excel 單元格,行/列號均從1開始;
  • Text:設(shè)置單元格的文本內(nèi)容;
  • SaveToFile():保存文件,第二個參數(shù)指定Excel版本;
  • Dispose():釋放工作簿資源,避免占用內(nèi)存。

效果圖:

3. 進階實戰(zhàn):導出二維列表到 Excel(帶表頭)

實現(xiàn)思路

  • 定義二維列表(包含表頭和數(shù)據(jù));
  • 先寫入表頭行,再遍歷數(shù)據(jù)行逐行寫入;
  • 可選:設(shè)置表頭樣式(加粗、居中)提升可讀性。

完整代碼

from spire.xls import *
from spire.xls.common import *

# 定義二維列表(表頭+數(shù)據(jù))
two_dimensional_list = [
    ["姓名", "年齡", "城市", "職業(yè)"],  # 表頭
    ["張三", 28, "北京", "工程師"],
    ["李四", 32, "上海", "產(chǎn)品經(jīng)理"],
    ["王五", 25, "廣州", "設(shè)計師"],
    ["趙六", 30, "深圳", "開發(fā)工程師"]
]

# 1. 創(chuàng)建工作簿
workbook = Workbook()
worksheet = workbook.Worksheets[0]
worksheet.Name = "人員信息表"

# 2. 遍歷二維列表,逐行寫入Excel
for row_index, row_data in enumerate(two_dimensional_list):
    # Excel行號從1開始
    current_row = row_index + 1
    for col_index, cell_value in enumerate(row_data):
        # Excel列號從1開始
        current_col = col_index + 1
        # 寫入單元格內(nèi)容
        worksheet.Range[current_row, current_col].Text = str(cell_value)
        
        # 3. 優(yōu)化表頭樣式(加粗、居中)
        if current_row == 1:
            worksheet.Range[current_row, current_col].Style.Font.IsBold = True
            worksheet.Range[current_row, current_col].Style.HorizontalAlignment = HorizontalAlignType.Center

# 4. 自動調(diào)整列寬(適配內(nèi)容長度)
worksheet.AllocatedRange.AutoFitColumns()

# 5. 保存文件
output_path = "二維列表轉(zhuǎn)Excel.xlsx"
workbook.SaveToFile(output_path, FileFormat.Version2016)
workbook.Dispose()

print(f"二維列表已成功導出到:{output_path}")

代碼解析

  • 二維列表遍歷:外層循環(huán)控制行,內(nèi)層循環(huán)控制列,實現(xiàn)“逐行逐列”寫入;
  • 表頭樣式優(yōu)化:通過 IsBold = True 設(shè)置加粗, HorizontalAlignType.Center 設(shè)置水平居中;
  • AllocatedRange.AutoFitColumns():自動調(diào)整列寬,避免內(nèi)容被截斷;
  • 數(shù)據(jù)類型轉(zhuǎn)換:str(cell_value)確保數(shù)字、字符串等類型統(tǒng)一寫入,避免類型報錯。

效果圖:

4. 實戰(zhàn)拓展:導出字典列表到 Excel(貼合業(yè)務(wù)場景)

字典列表是 Python 業(yè)務(wù)開發(fā)中最常用的數(shù)據(jù)格式(如從數(shù)據(jù)庫/接口獲取的結(jié)構(gòu)化數(shù)據(jù)),每個字典代表一行數(shù)據(jù),字典的對應(yīng)Excel表頭,對應(yīng)單元格數(shù)據(jù)。以下是完整實現(xiàn)方案。

實現(xiàn)思路

  • 定義字典列表(每個字典的鍵為字段名,值為字段值);
  • 提取字典的鍵作為 Excel 表頭(需確保字典鍵一致,或兼容鍵缺失場景);
  • 先寫入表頭行并設(shè)置樣式,再遍歷字典列表,按表頭順序提取值寫入單元格;
  • 自動調(diào)整列寬,提升 Excel 可讀性。

完整代碼

from spire.xls import *
from spire.xls.common import *

# 定義字典列表(模擬業(yè)務(wù)場景:從接口/數(shù)據(jù)庫獲取的用戶數(shù)據(jù))
dict_list = [
    {"用戶ID": 1001, "姓名": "張三", "年齡": 28, "城市": "北京", "注冊時間": "2024-01-15"},
    {"用戶ID": 1002, "姓名": "李四", "年齡": 32, "城市": "上海", "注冊時間": "2024-02-20"},
    {"用戶ID": 1003, "姓名": "王五", "年齡": 25, "城市": "廣州", "注冊時間": "2024-03-10"},
    {"用戶ID": 1004, "姓名": "趙六", "年齡": 30, "城市": "深圳", "注冊時間": "2024-04-05"}
]

# 1. 創(chuàng)建工作簿和工作表
workbook = Workbook()
worksheet = workbook.Worksheets[0]
worksheet.Name = "用戶信息表(字典列表)"

# 2. 提取表頭(字典的鍵)
if not dict_list:
    print("字典列表為空,無需導出!")
    workbook.Dispose()
    exit()
# 以第一個字典的鍵作為表頭(確保所有字典鍵一致,或參考下方注意事項處理)
headers = list(dict_list[0].keys())

# 3. 寫入表頭行并設(shè)置樣式
for col_index, header in enumerate(headers):
    current_col = col_index + 1
    # 寫入表頭文本
    worksheet.Range[1, current_col].Text = header

# 4. 遍歷字典列表,寫入數(shù)據(jù)行
for row_idx, data_dict in enumerate(dict_list):
    current_row = row_idx + 2  # 表頭占第1行,數(shù)據(jù)從第2行開始
    for col_idx, header in enumerate(headers):
        current_col = col_idx + 1
        # 提取字典值(用get方法兼容鍵缺失場景,避免KeyError)
        cell_value = data_dict.get(header, "")
        # 寫入單元格(統(tǒng)一轉(zhuǎn)字符串,避免類型報錯)
        worksheet.Range[current_row, current_col].Text = str(cell_value)

# 5. 自動調(diào)整列寬(適配內(nèi)容長度)
worksheet.AllocatedRange.AutoFitColumns()

# 6. 保存Excel文件
output_path = "字典列表轉(zhuǎn)Excel.xlsx"
workbook.SaveToFile(output_path, FileFormat.Version2016)

# 7. 釋放資源
workbook.Dispose()

print(f"字典列表已成功導出到:{output_path}")

代碼解析

  • 表頭提取list(dict_list[0].keys()) 從第一個字典中提取所有鍵作為 Excel 表頭,是業(yè)務(wù)場景中最常用的方式;
  • 兼容鍵缺失data_dict.get(header, "") 替代直接取值data_dict[header],若某個字典缺失指定鍵,會填充空字符串,避免KeyError報錯;
  • 行號計算:數(shù)據(jù)行從第2行開始(current_row = row_idx + 2),因為第1行已寫入表頭;

效果圖:

5. 常見問題與注意事項

免費版限制:Free Spire.XLS for Python 在讀寫 .xls 格式的 Excel 文檔時,有每個文檔 5 個工作表,每個工作表 200 行的限制。讀寫 .xlsx 格式的 Excel 文檔時沒有任何限制;

中文亂碼問題:若導出的Excel出現(xiàn)中文亂碼,需確保代碼文件編碼為 UTF-8,且寫入時直接使用字符串(無需額外轉(zhuǎn)碼);

資源釋放:務(wù)必調(diào)用 Dispose() 釋放工作簿資源,否則可能導致文件被占用(無法刪除/修改);

文件格式FileFormat.Version2016 對應(yīng).xlsx格式,FileFormat.Excel97to2003 對應(yīng).xls格式(兼容舊版Excel);

字典列表兼容:若字典鍵不一致,優(yōu)先提取所有唯一鍵作為表頭,并用get方法取值避免報錯。

# 提取所有唯一鍵作為表頭
all_headers = set()
for d in dict_list:
    all_headers.update(d.keys())
headers = sorted(list(all_headers))  # 排序保證表頭順序固定

以上就是Python實現(xiàn)將列表導出為Excel文件的詳細內(nèi)容,更多關(guān)于Python列表導出為Excel的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

剑河县| 会东县| 温宿县| 潜山县| 日土县| 鱼台县| 北流市| 潜山县| 汉寿县| 应城市| 衡阳市| 吉木萨尔县| 松溪县| 扬中市| 中超| 丹巴县| 汤原县| 宁远县| 井陉县| 天津市| 正阳县| 巴南区| 河西区| 蒙山县| 龙泉市| 昌邑市| 上思县| 五家渠市| 抚宁县| 皋兰县| 汉寿县| 蕲春县| 泗阳县| 若羌县| 米脂县| 玛纳斯县| 玛多县| 蛟河市| 武乡县| 南郑县| 抚州市|