2014-05-21 24 views
8

Tôi vừa chuyển toàn bộ thời gian sang Linux và LibreOffice nhưng tôi đang cố gắng tìm ra cách viết kịch bản cho nó trong python.Làm cách nào để sử dụng LibreOffice Calc và Python?

Những việc đơn giản như tham chiếu ô/trang tính và những thứ như vậy. Tìm ô cuối cùng trong cột bằng python.

Tất cả những thứ vô cùng dễ dàng để tôi làm trong VBA nhưng bây giờ tôi cần phải học cách thực hiện chúng trong python.

+0

Câu hỏi sử dụng phần mềm thuộc về superuser.com –

Trả lời

2

Có lẽ OOSheet sẽ là những gì bạn đang tìm kiếm:

http://oosheet.hacklab.com.br/

Đó là một giao diện python mức cao hơn so với python-uno (được sử dụng là cấp thấp API bởi OOSheet). Bạn có thể sử dụng nó để tạo các tập lệnh Macro, cũng như chạy trong một trình bao được kết nối với libreoffice bởi một socket. Điều này là tốt đẹp như bạn có thể sử dụng IPython hoặc những người khác tương tác (REPL) vỏ để làm việc trong một tờ hoặc phát triển một cái gì đó.

Đây là một ví dụ mã lấy từ tài liệu chính thức cho thấy cách đơn giản và một chút về những gì nó có thể làm:

>>> from oosheet import OOSheet as S 
>>> S('a1').string = 'Hello world' 
>>> S('a1').value = 1 
>>> S('a2').formula = '=a1+10' 
>>> S('a2').value 
11.0 
>>> S('a2').string 
u'11' 
>>> S('a2').formula 
u'=A1+10' 
>>> S('a1').set_value(2).drag_to('a3').drag_to('b3') 
>>> S('a1:b3').data_array 
((2.0, 3.0), (3.0, 4.0), (4.0, 5.0)) 
>>> S('g5').string = 'hello world' 
>>> S('a1:10').shift_down_until(column_g_satisfies = lambda s: s.string.endswith('world')) 
Sheet1.G1:G10 
>>> S('a8:b8').cut() 
>>> S('a1:4').copy() 
>>> S('j5').paste() 
>>> S().undo() 
>>> S().redo() 
>>> S().save_as('/tmp/oosheet_sandbox.ods') 
>>> S().quit() # this will close LibreOffice 
2

Bạn đã thử pyoo? Đó là một số loại trình bao bọc Python-UNO và có vẻ là một thay thế hợp lệ và dễ dàng hơn để sử dụng trực tiếp Python-UNO.

Các vấn đề liên quan