[問題] 如何轉換ctype array至Python List

看板Python作者 (惡棍)時間7年前 (2016/11/10 14:13), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
在下有一個Libreoffice的Python巨集問題, 由於ctypes的陣列似乎無法直接張貼在儲存格上, 因此想請教列位高手,有什麼辦法可以將ctypes array 轉成 list? 由於將來陣列將會來自動態連結.so檔或.dll檔, 而且會非常龐大,以迴圈逐一貼上儲存格會很耗時, 因此在此請教大家,不勝感激! 請詳簡化的Code: import uno from ctypes import * from com.sun.star.table.CellContentType import TEXT, EMPTY, VALUE, FORMULA def test(*arg): #新增一個ctypes 2x2陣列 c_arr = ((c_double * 2)*2)() c_arr[0][0] = 1.5 c_arr[0][1] = 2.5 c_arr[1][0] = 3.5 c_arr[1][1] = 4.5 #新增一個2x2 Python List p_lst = [[0 for x in range(2)] for y in range(2)] p_lst[0][0] = 1.1 p_lst[0][1] = 2.2 p_lst[1][0] = 3.3 p_lst[1][1] = 4.4 #以下為指定當前工作表檔案以及工作表 desktop = XSCRIPTCONTEXT.getDesktop() model = desktop.getCurrentComponent() sheet = model.Sheets.getByName("Sheet1") #以下這行直接在儲存格貼上ctypes二維陣列會出錯,先註解處理。 #sheet.getCellRangeByName("A1:B2").Data = c_arr #以下這行直接在儲存格貼上Python List,成功。 sheet.getCellRangeByName("A1:B2").Data = p_lst -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.14.88 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1478758383.A.BAD.html

11/12 14:44, , 1F
沒有內建方法,只能自己轉
11/12 14:44, 1F
文章代碼(AID): #1O90_lkj (Python)