Python: 如何在Excel儲存格中自動換行? cell.alignment = openpyxl.styles.Alignment( wrapText =True) #pd.DataFrame.from_dict

加入好友
加入社群
Python: 如何在Excel儲存格中自動換行? cell.alignment = openpyxl.styles.Alignment( wrapText =True) #pd.DataFrame.from_dict - 儲蓄保險王

code:

# -*- coding: utf-8 -*-
"""
Created on Tue Nov 25 19:20:00 2024

@author: SavingKing
"""

import pandas as pd
import openpyxl

#  假設這是從 JSON 文件讀取的數據
data = {
    "class_name": ["PlcCtrlProcessStep"],
    "arguments": ["PlcCtrlProcessStep"],
    "tests": ["INITIALIZE_STEP 1\ntest\ntest2"],  # 包含換行符的字符串
    "action": ["{'bypass': 'false'}"]
}
#字典中的value使用list type,即使只有一個元素,以免觸發ValueError
#ValueError: If using all scalar values, you must pass an index
#觸發ValueError的話,可以使用
#df = pd.DataFrame([data]) #注意data被[]包覆, 或者
#df = pd.DataFrame(data,index=[0]) #注意0被[]包覆

# 創建 DataFrame
df = pd.DataFrame(data)

# 使用 ExcelWriter  openpyxl 引擎導出 DataFrame  Excel
with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer:
    df.to_excel(writer, index=False,sheet_name='MyCustomSheet')
    # 獲取工作簿和工作表
    workbook = writer.book
    worksheet = writer.sheets['MyCustomSheet']
    
    # 遍歷工作表中的所有單元格並設置換行
    for row in worksheet.iter_rows():
        for cell in row:
            cell.alignment = openpyxl.styles.Alignment(wrapText=True)
    """
    這部分代碼遍歷 Excel 工作表中的每個單元格
    並設置 wrapText=TruewrapText=True 的設置
    使得單元格內的文本在達到單元格寬度限制時會自動換行
    而不是溢出或被截斷
    這對於 tests 列中含有換行符的字符串尤為重要
    因為它確保了字符串的每個部分都能按原樣顯示
    保持可讀性和格式的完整性
    工作表名稱的長度Excel 對工作表名稱有一定的限制
    最長不能超過 31 個字符並且不能包含以下字符:[ ] : ? * / \
    唯一性每個工作表的名稱必須是唯一的
    如果嘗試創建一個已存在的工作表名稱將會引發錯誤
    通過這種方式您可以輕松地為每個工作表設置自定義的名稱
    使您的 Excel 文件更加有組織和易於理解。。
    """

輸出的xlsx(注意C2儲存格):

Python: 如何在Excel儲存格中自動換行? cell.alignment = openpyxl.styles.Alignment( wrapText =True) #pd.DataFrame.from_dict - 儲蓄保險王

推薦hahow線上學習python: https://igrape.net/30afN

pd.set_option("display.max_columns", None)
pd.DataFrame.from_dict(data)

Python: 如何在Excel儲存格中自動換行? cell.alignment = openpyxl.styles.Alignment( wrapText =True) #pd.DataFrame.from_dict - 儲蓄保險王

pd.DataFrame.from_dict 方法在某些情況下比直接使用 pd.DataFrame 構造器更有優勢,主要體現在它提供了更多的靈活性來處理不同格式的輸入數據。下面是一些 pd.DataFrame.from_dict 的具體優勢和使用場景:

  1. 數據方向控制 (Orientation Control)
    pd.DataFrame.from_dict 允許通過 orient 參數指定字典的鍵 (keys) 如何映射到 DataFrame。這種靈活性在處理非標準格式的數據時非常有用。orient 參數的選項包括:

‘dict’(默認):字典的鍵被解釋為列名,值應該是列表或數組。
‘list’:字典的鍵被解釋為行索引,值應該是與列對應的列表。
‘series’:字典的鍵被解釋為列名,值為 Series 對象。
‘split’:預期輸入為 {‘index’: […], ‘columns’: […], ‘data’: […]} 的格式。
‘records’:預期輸入為列表,每個元素是一個字典,字典的鍵是列名,值是對應的數據。
‘index’:字典的鍵被解釋為行索引,值是包含列數據的字典。

  1. 處理具有不同數據結構的字典
    當您的數據以某種方式預組織,或者您從外部系統接收到數據以特定格式提供時,使用 from_dict 可以更容易地將這些數據轉換為 DataFrame。
  2. 代碼的可讀性和意圖表達
    使用 from_dict 方法可以明確表達出數據源是一個字典,並且強調了從這種數據結構轉換的意圖。當與其他數據科學團隊成員共享代碼時,這可以提高代碼的可讀性和易理解性。

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python: 如何在Excel儲存格中自動換行? cell.alignment = openpyxl.styles.Alignment( wrapText =True) #pd.DataFrame.from_dict - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *