9

Tôi có một đống bảng tính Lotus 123 (không phải do tôi viết) với Lotus Scripts trong đó làm rất nhiều công việc chân (di chuyển dữ liệu từ bảng tính này sang bảng tính khác và những thứ khác như thế). Tôi đang cân nhắc việc chuyển tất cả từ Lotus 98 sang một số thứ khác, như OpenOffice.Python trong OpenOffice 3

Tôi đã tự hỏi đâu là nơi tốt để bắt đầu học Scripting OpenOffice 3. Python có phải là một tuyến đường tốt và nếu có, tôi có thể tìm các ví dụ mã làm việc cho OOo3 ở đâu? Bất kỳ vấn đề lạ tôi cần phải nhận thức? Tôi có nên sử dụng một ngôn ngữ kịch bản khác như Javascript hoặc OOBasic không ??

Mọi người nghĩ gì về cách viết kịch bản OpenOffice 3 về cơ bản!

Chúc mừng,

Andy

Trả lời

9

Starting Point

Bắt đầu ở đây: Python as a macro language

Ví dụ

Sử dụng Python category trong wiki.

Có ngôn ngữ kịch bản tốt hơn không?

Python có cú pháp tốt nhất. Tôi muốn khuyên JavaScript và OOBasic chỉ nếu hai điều kiện này được đáp ứng:

  1. Bạn đã biết ngôn ngữ
  2. Bạn cần được xây dựng trong trình gỡ lỗi

Với Python, gỡ lỗi thường không phải là một vấn đề lớn, vì vậy bạn sẽ không bỏ lỡ trình gỡ rối và dễ học hơn bất kỳ ngôn ngữ nào khác.

5

Tôi nhìn việc này và thấy ngạc nhiên chút tài liệu hướng dẫn về cách sử dụng Python là một ngôn ngữ kịch bản. Có nói rằng, tôi đã tìm ra những gì tôi cần, và nó hoạt động hoàn toàn cho mục đích đơn giản của tôi (làm cho một thời gian biểu từ các hàng). Nó thậm chí còn làm việc rất tốt trên OS X, cho rằng OO.o khá trẻ trên nền tảng đó. Python là một ngôn ngữ tuyệt vời, đẹp hơn nhiều so với Basic. Dưới đây là một số điều bạn cần biết:

  • Điểm bắt đầu của bạn trong tập lệnh Python là XSCRIPTCONTEXT, biến toàn cầu có thể truy cập trực tiếp từ tập lệnh của bạn. Vì vậy bạn có thể làm

    worksheet = XSCRIPTCONTEXT.getDocument().getSheets().getByIndex(0) 
    

    Các bạn có thể làm

    worksheet.getCellByPosition(x,y).getString() 
    

    hoặc tương ứng setString() để truy cập các tế bào.

  • Trên OS X, tôi phải đặt tập lệnh trong $HOME/Library/Application Support/OpenOffice.org/3/user/Scripts/python. Sau đó, nó được chọn bởi hộp thoại macro.

  • đặt macro của bạn trong một hàm, nói def macro và thêm

    g_exportedScripts = macro, 
    

    ở cuối.

  • Để có được kết xuất debug, tôi đã sử dụng:

    logfile = os.path.dirname(__file__.replace("file://","").replace("%20"," ")) + "/output.txt" 
    sys.stdout = open(logfile, "a", 0) # unbuffered 
    

    Sau đó, bạn có thể sử dụng print, mà sẽ được xuất ra để output.txt trong thư mục tập lệnh của bạn.

Điều đó là đủ để bạn bắt đầu.