123 lines
6.0 KiB
Python
123 lines
6.0 KiB
Python
import openpyxl
|
||
from openpyxl.styles import Font, Alignment, PatternFill, Border, Side
|
||
|
||
wb = openpyxl.Workbook()
|
||
ws = wb.active
|
||
ws.title = "U23_L2_承"
|
||
|
||
ws.column_dimensions['A'].width = 12
|
||
ws.column_dimensions['B'].width = 45
|
||
ws.column_dimensions['C'].width = 12
|
||
ws.column_dimensions['D'].width = 42
|
||
|
||
header_font = Font(bold=True, size=11)
|
||
header_fill = PatternFill(start_color="D9D9D9", end_color="D9D9D9", fill_type="solid")
|
||
cell_align = Alignment(vertical="top", wrap_text=True)
|
||
header_align = Alignment(horizontal="center", vertical="center", wrap_text=True)
|
||
thin_border = Border(
|
||
left=Side(style="thin"), right=Side(style="thin"),
|
||
top=Side(style="thin"), bottom=Side(style="thin")
|
||
)
|
||
|
||
headers = ["类型", "剧情描述", "角色名", "编剧台词"]
|
||
for col, h in enumerate(headers, 1):
|
||
cell = ws.cell(row=1, column=col, value=h)
|
||
cell.font = header_font
|
||
cell.fill = header_fill
|
||
cell.alignment = header_align
|
||
cell.border = thin_border
|
||
|
||
rows = [
|
||
["TL", '【场景】May农场 — 会场\n【角色】User、May、Sam、Jack', "", ""],
|
||
["", "Jack的话说完。Sam脸色刷白,额头冒汗", "", ""],
|
||
["", "", "Sam", "I... I need the toilet."],
|
||
["", "Sam转身就跑,差点撞倒展台上的Pineapple", "", ""],
|
||
["", "", "May", "Sam went to the toilet."],
|
||
["", "May朝User无奈地耸耸肩。两人跟去厕所门口", "", ""],
|
||
["TL", "【场景】厕所门口\n【角色】User、May、Sam", "", ""],
|
||
["", "厕所隔间门关着,Sam在里面深呼吸的声音传出来", "", ""],
|
||
["中互动", "", "User", "Sam is in the toilet."],
|
||
["", "隔间里传来冲水声。Sam推门出来,擦着汗", "", ""],
|
||
["", "", "Sam", "Okay. I am ready now."],
|
||
["", "May拍拍Sam肩膀", "", ""],
|
||
["", "", "May", "Good! Let's go back."],
|
||
["TL", "【场景】会场展台前\n【角色】User、May、Sam、Jack", "", ""],
|
||
["", "三人走回会场。展台前围了一群人,嘈杂声一片", "", ""],
|
||
["", 'May挤进去 —— 然后僵住了', "", ""],
|
||
["", "【镜头】展台上:巨大的Pineapple被啃得乱七八糟,只剩皮和残渣", "", ""],
|
||
["", "", "May", "The pineapple! Where is the pineapple?!"],
|
||
["", "Jack摸着下巴,若有所思", "", ""],
|
||
["", "", "Jack", "Tom loves pineapple..."],
|
||
["", "", "Jack", "Maybe he ate them?"],
|
||
["", "【emoji】May😱", "", ""],
|
||
["中互动", "【插入图】展台残局大图:pineapple被啃碎的残渣、皮、空盘,请用户找出被偷吃的是哪种fruit", "", ""],
|
||
["", "众人面面相觑。突然——【音效】远处传来一声响亮的驴叫", "", ""],
|
||
["", "", "May", "What was that?"],
|
||
["", "我们循声找去", "", ""],
|
||
["TL", "【场景】农场角落\n【角色】User、May、Sam、Jack、驴子", "", ""],
|
||
["", "农场角落的栅栏边。一头驴子正悠闲地嚼着东西,嘴边还挂着Pineapple皮", "", ""],
|
||
["", "", "May", "A donkey!"],
|
||
["", "【emoji】May😲 Sam😅", "", ""],
|
||
["", "May走近驴子,弯腰看着它", "", ""],
|
||
["", "", "May", "Hey, donkey!"],
|
||
["", "", "May", "What fruit do you like?"],
|
||
["", "驴子当然不理她,继续啃Pineapple。May转头对User眨眼", "", ""],
|
||
["", "", "May", "Okay. What fruit does it like?"],
|
||
["中互动", "", "User", "It likes pineapple!"],
|
||
["", "Sam终于笑了出来,擦擦汗", "", ""],
|
||
["", "", "Sam", "A donkey ate my pineapple."],
|
||
["", "", "Sam", "That is funny."],
|
||
["", "Jack挠头,有点尴尬", "", ""],
|
||
["", "", "Jack", "But Tom really likes pineapple too."],
|
||
["", "", "Jack", "I was sure he ate them."],
|
||
["TL", "【场景】厕所门口\n【角色】User、May、Sam", "", ""],
|
||
["", "三人准备回会场。Sam突然停下", "", ""],
|
||
["", "", "Sam", "Wait... I need the toilet... again!"],
|
||
["", "Sam捂着肚子又跑向厕所。May叹了一口长长的气", "", ""],
|
||
["", "", "May", "Come on, Sam!"],
|
||
["", "User和May靠在厕所门外。等了一会儿——没动静", "", ""],
|
||
["中互动", "", "User", "Sam went to the toilet."],
|
||
["", "May踮脚往门里张望", "", ""],
|
||
["", "", "May", "He is still in there."],
|
||
["", "又等了一会儿", "", ""],
|
||
["", "厕所门开了——出来的不是Sam。是Tom。", "", ""],
|
||
["", "【镜头】Tom满脸通红(过敏反应),揉着脸,完全没注意到我们", "", ""],
|
||
["TL", "【角色】Tom", "", ""],
|
||
["", "", "Tom", "I hate pineapple..."],
|
||
["", "", "Tom", "I hate kiwi..."],
|
||
["", "User和May愣在原地,交换了一个震惊的眼神", "", ""],
|
||
["", "May小声凑近User", "", ""],
|
||
["", "", "May", "Did you hear that?"],
|
||
["中互动", "", "User", "I heard that!"],
|
||
["中互动", "", "User", "Are you okay, Tom?"],
|
||
["", "Tom猛然抬头,看到我们。表情瞬间切换成笑脸(很不自然)", "", ""],
|
||
["", "", "Tom", "I am fine! I am okay!"],
|
||
["", "", "Tom", "I like pineapple and kiwi!"],
|
||
["", "", "Tom", "I love them!"],
|
||
["", "Tom边说边快步走开,几乎是小跑离开的", "", ""],
|
||
["", "【emoji】May😕 User🤨", "", ""],
|
||
["", "", "May", "That was strange."],
|
||
["", "", "May", "He said he hates them..."],
|
||
["", "", "May", "Then he said he loves them."],
|
||
["", "⚡钩子:Sam终于推门出来。会场方向传来掌声——Kalab的品鉴开始了。User回头看了一眼Tom消失的方向...", "", ""],
|
||
]
|
||
|
||
tl_fill = PatternFill(start_color="E8F0FE", end_color="E8F0FE", fill_type="solid")
|
||
interact_fill = PatternFill(start_color="FFF2CC", end_color="FFF2CC", fill_type="solid")
|
||
|
||
for i, row in enumerate(rows, 2):
|
||
for col, val in enumerate(row, 1):
|
||
cell = ws.cell(row=i, column=col, value=val)
|
||
cell.alignment = cell_align
|
||
cell.border = thin_border
|
||
if row[0] == "TL":
|
||
cell.fill = tl_fill
|
||
elif row[0] == "中互动":
|
||
cell.fill = interact_fill
|
||
|
||
ws.freeze_panes = "A2"
|
||
|
||
output_path = "/root/.openclaw/workspace-xiaobian/output/U23_L2_承_剧本V1.xlsx"
|
||
wb.save(output_path)
|
||
print(f"Saved: {output_path}")
|