Tempel DataObject ke Word C#

Saya mencoba menempelkan data dari clipboard ke Word, bukan hanya teks. Saya telah berhasil menempelkan teks RTF tetapi saya juga memerlukan pictures/links/etc. Data yang saya salin berasal dari situs web, dan program perlu menempelkannya persis seperti saya menekan CTRL-V ke dalam dokumen.

Dari apa yang saya pahami, clipboard akan menampung DataObject, dan sepertinya saya tidak dapat menemukan cara untuk memasukkannya ke dalam dokumen Word.

Saya tidak peduli apakah doc atau docx digunakan. Baik baik saja.


person Maelo    schedule 28.08.2015    source sumber
comment
Bisakah Anda menunjukkan apa yang telah Anda coba sejauh ini?   -  person varocarbas    schedule 28.08.2015
comment
@varocarbas Saat ini saya hanya menggunakan Novacode: var doc = DocX.Create(docLocation); doc.InsertParagraph(Clipboard.GetText());   -  person Maelo    schedule 28.08.2015
comment
Maaf tapi saya tidak punya pengalaman apa pun di perpustakaan khusus ini. Saya telah menambahkan tag yang sesuai untuk membantu penjawab yang berpengalaman dalam hal ini menemukan pertanyaan Anda.   -  person varocarbas    schedule 28.08.2015
comment
@varocarbas Terima kasih, meskipun saya tidak terlalu peduli perpustakaan apa yang harus saya gunakan untuk melakukan ini.   -  person Maelo    schedule 28.08.2015
comment
Jika Anda tidak peduli dengan perpustakaan tertentu, Anda harus mencoba yang lain (atau mengandalkan fungsi bawaan, seperti Interop.Word). Anda mungkin harus berusaha lebih keras daripada hanya menulis beberapa baris kode. Misalnya, hanya dengan mengandalkan Clipboard Anda memiliki cukup banyak pilihan (GetData, GetDataObject, dll.).   -  person varocarbas    schedule 28.08.2015
comment
Anda harus mengedit dan menambahkan detail tentang apa yang Anda lakukan (perluas sedikit pada komentar Anda). Pertanyaan Anda terlihat keluar topik tanpanya.   -  person    schedule 28.08.2015
comment
Jangan gunakan Novacode-docx untuk apa yang Anda coba lakukan.   -  person Phillip    schedule 29.08.2015
comment
@phillip Apa yang Anda rekomendasikan untuk digunakan?   -  person Maelo    schedule 29.08.2015
comment
@varocarbas Clipboard adalah satu-satunya cara untuk mendapatkan data dalam format yang tepat. Saya telah mencoba beberapa perpustakaan lain tetapi belum dapat menemukan sesuatu yang dapat menempatkan objek data (diakuisisi oleh Clipboard.GetDataObject()) ke dalam dokumen Word.   -  person Maelo    schedule 29.08.2015
comment
@ akankah saya tidak yakin harus menambahkan apa lagi - Saya telah mengubah judul menjadi Tempel DataObject Ke Word karena itulah yang saya coba lakukan. Apakah itu bekerja?   -  person Maelo    schedule 29.08.2015
comment
Melihat? Melakukan beberapa tes/penelitian daripada menanyakan setiap bit adalah proses yang lebih efisien untuk mendapatkan apa yang Anda inginkan. Selain itu, kode yang Anda tulis sekarang lebih mendekati persyaratan minimum untuk ditanyakan di SO (dua baris sebelumnya hampir tidak ada). Terimalah jawaban Anda sendiri sebagai jawaban yang benar dan nikmati pengetahuan baru Anda.   -  person varocarbas    schedule 29.08.2015
comment
@varocarbas Saya telah mencari-cari selama dua jam sebelum mengajukan pertanyaan. Saya telah mencoba dengan OpenXML dan Novacode, dan memiliki banyak kode gagal yang tidak berfungsi di C#, jadi saya tidak memasukkannya. Saya memahami ada banyak pertanyaan yang masuk ke sini yang belum pernah diusahakan sebelumnya, ini bukan salah satunya. Saya hanya tidak punya apa pun untuk ditunjukkan setelah banyaknya kegagalan. Saya belum bisa menerima jawaban saya sendiri. Saya akan melakukannya ketika saya bisa.   -  person Maelo    schedule 30.08.2015
comment
Senang membacanya. Tidak yakin mengapa Anda belum bisa menerima pertanyaan Anda sendiri; Saya pikir ini adalah jawaban yang layak untuk pertanyaan ini. Kodenya agak tidak lengkap, tetapi cukup sesuai dengan yang diminta.   -  person varocarbas    schedule 30.08.2015
comment
@varocarbas Bilang aku harus menunggu 24 jam. Saya punya waktu 13 menit tersisa ketika saya menjawab. Terima kasih untuk bantuannya.   -  person Maelo    schedule 30.08.2015


Jawaban (1)


Temukan solusinya menggunakan Microsoft.Office.Interop.Word:

                    object oMissing = System.Reflection.Missing.Value;
                    object oEndOfDoc = "\\endofdoc";
                    Word._Application oWord;
                    Word._Document oDoc;
                    oWord = new Word.Application();
                    oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
                        ref oMissing, ref oMissing);
                    Word.Paragraph oPara1;
                    oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
                    oPara1.Range.Paste();
                    oDoc.SaveAs(docOutput);
person Maelo    schedule 29.08.2015