2010-03-29 14 views
5

Bir Word belgesindeki bir tablonun her hücresiyle birlikte meta verileri (temel olarak benzersiz bir kimlik) depolamaya çalışıyorum. Şu anda, geliştirdiğim eklenti için, veritabanını sorguluyor ve alınan verileri kullanarak Word belgesinin içinde bir tablo yapıyorum.Bir Word belgesinde belirli bir Tabloya veya Hücre'ye bağlı gizli meta veri bilgilerini depolamak mümkün mü?

Kullanıcının düzenlemelerini belgeye kaydedip veritabanına geri döndürmek istiyorum. İlk düşüncem, tablodaki her hücreyle birlikte benzersiz bir kimlik depolamaktı, böylece hangi kayıtların güncelleneceğini anlatabileydim. Ayrıca, hangi hücrelerin değiştirildiğini anlayabilmem için her hücrenin içinde bir "isChanged" bayrağı saklamak istiyorum. Gerekli bilgiyi hücrenin "Kimlik" özelliğine ekleyebileceğimi buldum - ancak kullanıcı belgeyi kaydettiyse, kapattıysa ve yeniden açtıysa bu bilgiler korunamadı. Daha sonra verileri "Fields" koleksiyonuna veri ekleyerek depolamayı denedim - ancak bu çalışmadı ve bir çalışma zamanı hatası attı. Bu ince derler ama bu çalışma zamanı hatası atar

object t1 = Word.WdFieldType.wdFieldEmpty; 
object val = "myValue: " + counter; 
object preserveFormatting = true; 
tbl.Cell(i, j).Range.Fields.Add(tbl.Cell(i, j).Range, ref t1, ref val, ref preserveFormatting); 

"Bu komut kullanılamıyor": İşte çalıştı kodudur.

Yani, bu mümkün mü? Yoksa yanlış yöne mi yöneldim?

Şimdiden teşekkürler.

+0

hedeflediğiniz Word hangi sürümünü? Bu bir XML Belgesi, Word 2007 Belgesi, Zengin Metin Formatı mı? – AMissico

+0

Üzgünüz, bundan önce bahsetmeliydin. Hedefleme sürümü 2007 ve bu bir Word 2007 Belgesidir. – leftend

cevap

1

ben gerekli bilgileri depolamak için "ContentControls" kullanılarak yara. Benzersiz kimliği saklamak için "Başlık" alanını ve alanın değiştirilip değiştirilmediğini izlemek için "etiket" alanını kullandım. daha fazla bilgi için bu bağlantıya bakın: http://blogs.technet.com/gray_knowlton/archive/2010/01/15/associating-data-with-content-controls.aspx

+0

Bu kontrolleri tamamen unutmuşum. Afedersiniz. – AMissico

+1

Özür dilemeye gerek yok - eklenti geliştirmeye ne kadar çok kazandığım, ne kadar karmaşık olduğunun farkına varıyorum! Cevabınız için tekrar teşekkürler, dediğim gibi, gerçekten doğru yönde bana işaret etti. – leftend

+0

Ne yazık ki, bu "eski" .doc-Format için çalışmaz, Word.Table.Title gibi "Word.Table.Descr" gibi OpenXML biçiminin tanıtımı ile eklenen özelliklerdir. .doc dosyaları için, 'Word.Table.Range 'dosyasına yorum ekledikçe .doc bir alt programda açıldığında her zaman revizyon görünümünü tetikleyecek şekilde tatmin edici bir çözüm bulmuyorum. kelime görüntüleyici gibi. – M463

1

"Word 2007 Belgesi" bir XML olduğundan, belgeye bir ad alanı ekleyebilir ve ardından ad alanınızdan niteliklere sahip öğeleri ekleyebilirsiniz. Yükleme ve kaydetme sırasında ad alanınızı yok saymalıdır. Ayrıca, gereken her türlü bilgiyi (meta verileri) saklamak için yeni seçim ekleyebilirsiniz. Bunun üzerine

, çıplak "Word 2007 belgesi" yaratmak olduğunu ben Word ile bu tekniği kullanmadıysanız, ama başarılı denemek için Excel 2003

ilk şey kullanarak yapmış söyledi. Durumunuzda, iki iki basit bir tablo ekleyin. Bir metin veya XML düzenleyici ile açın ve ad alanınızı ekleyin, bir öznitelik ekleyin ve bir öğe ekleyin. Word ile aç bir değişiklik yapın ve kaydedin. Düzenleyiciyle aç ve ad alanı özellik ve öğenizin değiştirilmediğinden emin olun.

+0

Yardım için teşekkürler! Çalışmayı başaramadım, ama kesinlikle doğru yöne gitmemi sağladı. – leftend

İlgili konular