2009-04-17 38 views
5

Tôi cần lưu trữ siêu dữ liệu tùy chỉnh trong tài liệu Word. 'Thuộc tính tài liệu' được giới hạn ở 255 byte nhưng tôi có dữ liệu >> 10kLưu trữ siêu dữ liệu tùy ý trong tài liệu Microsoft Word

Chúng tôi đang sử dụng VBA để viết phần mở rộng từ để tương tác với ứng dụng của chúng tôi và muốn lưu trữ dữ liệu ứng dụng của chúng tôi trong tài liệu từ. Ý tưởng là người dùng chỉ có thể chia sẻ tài liệu từ mà không chia sẻ bất kỳ tệp dữ liệu nào khác của ứng dụng của chúng tôi.

Có ý tưởng nào về cách lưu trữ siêu dữ liệu tùy ý một cách hiệu quả trong tài liệu Office 2003+ không?

Trả lời

8

Chỉ cần cố gắng này trong trình soạn thảo cửa sổ ngay lập tức VBA:

ActiveDocument.Variables.Add "foo", String(10000, ".") 

? Len(ActiveDocument.Variables("foo")) 
10000 

biến tài liệu được lưu trữ với tài liệu. Họ dường như đi lên đến 65280 ký tự Unicode, như tôi vừa phát hiện ra (thử nghiệm trong Word 2003; Cập nhật: Giới hạn này giống nhau trong Word 2007 và 2010).

Nếu bạn sợ gần 60k cho dữ liệu của mình, tôi khuyên bạn nên chia nhỏ hơn một vài biến hoặc nén nó trước khi lưu trữ. This post hiển thị một số tùy chọn để thực hiện điều đó trong VBA.

2

Nó phù hợp không chính xác yêu cầu của bạn vì nó không hoạt động với Word 2003. Tuy nhiên, nó vẫn có thể là thú vị cho bạn (nếu không tôi khuyên bạn nên sử dụng các biến tài liệu theo đề nghị của Tomalak):

Trong Word 2007 (và sau này) bạn có thể nhúng các tài liệu XML tùy ý vào tài liệu Word dưới dạng Custom XML.

Ví dụ được mô tả trong bài viết này trên MSDN: How to: Add Custom XML Parts to Documents by Using VSTO Add-Ins

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