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=True。wrapText=True 的設置
使得單元格內的文本在達到單元格寬度限制時會自動換行,
而不是溢出或被截斷。
這對於 tests 列中含有換行符的字符串尤為重要,
因為它確保了字符串的每個部分都能按原樣顯示,
保持可讀性和格式的完整性
工作表名稱的長度:Excel 對工作表名稱有一定的限制,
最長不能超過 31 個字符,並且不能包含以下字符:[ ] : ? * / \
唯一性:每個工作表的名稱必須是唯一的,
如果嘗試創建一個已存在的工作表名稱,將會引發錯誤。
通過這種方式,您可以輕松地為每個工作表設置自定義的名稱,
使您的 Excel 文件更加有組織和易於理解。。
"""
輸出的xlsx(注意C2儲存格):
推薦hahow線上學習python: https://igrape.net/30afN
pd.set_option("display.max_columns", None)
pd.DataFrame.from_dict(data)
pd.DataFrame.from_dict 方法在某些情況下比直接使用 pd.DataFrame 構造器更有優勢,主要體現在它提供了更多的靈活性來處理不同格式的輸入數據。下面是一些 pd.DataFrame.from_dict 的具體優勢和使用場景:
- 數據方向控制 (Orientation Control)
pd.DataFrame.from_dict 允許通過 orient 參數指定字典的鍵 (keys) 如何映射到 DataFrame。這種靈活性在處理非標準格式的數據時非常有用。orient 參數的選項包括:
‘dict’(默認):字典的鍵被解釋為列名,值應該是列表或數組。
‘list’:字典的鍵被解釋為行索引,值應該是與列對應的列表。
‘series’:字典的鍵被解釋為列名,值為 Series 對象。
‘split’:預期輸入為 {‘index’: […], ‘columns’: […], ‘data’: […]} 的格式。
‘records’:預期輸入為列表,每個元素是一個字典,字典的鍵是列名,值是對應的數據。
‘index’:字典的鍵被解釋為行索引,值是包含列數據的字典。
- 處理具有不同數據結構的字典
當您的數據以某種方式預組織,或者您從外部系統接收到數據以特定格式提供時,使用 from_dict 可以更容易地將這些數據轉換為 DataFrame。 - 代碼的可讀性和意圖表達
使用 from_dict 方法可以明確表達出數據源是一個字典,並且強調了從這種數據結構轉換的意圖。當與其他數據科學團隊成員共享代碼時,這可以提高代碼的可讀性和易理解性。
推薦hahow線上學習python: https://igrape.net/30afN
近期留言