fix: cant find bookmark

This commit is contained in:
zzs 2025-03-25 10:33:49 +08:00
parent f405fd3172
commit ad1506790b

View File

@ -186,13 +186,19 @@ def InsertRow(location_bookmark_name, data, start_row_index=-1):
data: 二维数组用于填充表格数据
start_row_index: 起始行位置默认为-1即在表格末尾插入
"""
bookmark_info = QueryAll()
table_bookmarks = bookmark_info["table"]
# bookmark_info = QueryAll()
# table_bookmarks = bookmark_info["table"]
handle_table_index = FindTableIndex(table_bookmarks, location_bookmark_name)
# handle_table_index = FindTableIndex(table_bookmarks, location_bookmark_name)
doc = XSCRIPTCONTEXT.getDocument()
tables = doc.getTextTables()
bookmarks = doc.getBookmarks()
bookmark_in_table_position = QueryBookmarkPositionInTable(tables, bookmarks)
if location_bookmark_name not in bookmark_in_table_position:
raise ValueError(f"未找到书签 {location_bookmark_name} 对应的表格")
handle_table_index = bookmark_in_table_position[location_bookmark_name]["tableIndex"]
try:
handle_table = tables.getByIndex(handle_table_index)
@ -258,7 +264,7 @@ def DebugCallInsertRow():
"""
调试调用
"""
InsertRow("h1", [["1", "2", "3"], ["4", "5", "6"]], 0)
InsertRow("t1", [["1", "2"], ["4", "5"]], 0)
def DeleteRowWithJSON(json_str):
@ -277,12 +283,20 @@ def DeleteRow(location_bookmark_name, start_row_index, delete_row_count=-1):
start_row_index: 起始行位置(删除行包含本行)
delete_row_count: 删除的行数
"""
bookmark_info = QueryAll()
table_bookmarks = bookmark_info["table"]
handle_table_index = FindTableIndex(table_bookmarks, location_bookmark_name)
# bookmark_info = QueryAll()
# table_bookmarks = bookmark_info["table"]
# handle_table_index = FindTableIndex(table_bookmarks, location_bookmark_name)
doc = XSCRIPTCONTEXT.getDocument()
tables = doc.getTextTables()
bookmarks = doc.getBookmarks()
bookmark_in_table_position = QueryBookmarkPositionInTable(tables, bookmarks)
if location_bookmark_name not in bookmark_in_table_position:
raise ValueError(f"未找到书签 {location_bookmark_name} 对应的表格")
handle_table_index = bookmark_in_table_position[location_bookmark_name]["tableIndex"]
handle_table = tables.getByIndex(handle_table_index)
row_count = handle_table.getRows().getCount()
if start_row_index < 0 or start_row_index >= row_count: