none
Wordden okuttuğum dosya richtextboxda biçimsiz çıkıyor RRS feed

  • Soru

  • Merhabalar

    Ben dışarıdan bir word dosyasını richtextboxa aktarıytorum fakat word dosyasının biçimi richboxta geçerli olmuyor. boşluklar ve paragraflar olmadan metin bir bütün halinde gözüküyor. 

     OpenFileDialog file = new OpenFileDialog();
                file.Filter = "Word Dosyası |*.docx| Word Dosyası|*.doc";
                file.RestoreDirectory = true;
                file.CheckFileExists = false;
                file.Title = "Word Dosyası Seçiniz..";

                if (file.ShowDialog() == DialogResult.OK)
                {
                    Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
                    Microsoft.Office.Interop.Word.Document doc = new Microsoft.Office.Interop.Word.Document();

                    object fileName = file.FileName;
                    object missing = System.Type.Missing;
                    doc = word.Documents.Open(ref fileName, ref missing, ref missing);

                    String read = string.Empty;
                    List<string> data = new List<string>();
                    for (int i = 0; i < doc.Paragraphs.Count; i++)
                    {
                        string temp = doc.Paragraphs[i + 1].Range.Text.Trim();
                        if (temp != string.Empty)
                            data.Add(temp);
                    }
                    doc.Close();
                    word.Quit();
                    foreach (var item in data)
                    {
                        richTextBox1.Text += item;
                    }

    wordden dosyayı bu kod ile okuyorum. 

    bu şekilde gelmesi gerekirken;

    bu şekilde geliyor. 

    yardımcı olabilirmisiniz? 

    şimdiden teşekkür ederim.

    2 Ocak 2020 Perşembe 21:24

Tüm Yanıtlar

  • Senin sorun degil miydi ben daha once bunun cevabini yazmistim.

    Öncelikle sunu söyleyeyim, bir yerden kod kopyalıyorsan, icindeki kodun ne yaptigini öğrenmeye calis. Word.Application'i garip bir sekilde kullanmissin ve gereksiz, tarih oncesi, "ref missing"leri eklemişsin. Mesela .Documents.Open'da neden 2 tane ref missing var? Neden daha fazla ya da az degil? Ne ise yarıyor? Dosya adi neden ref?

    Kodunda paragrafları (satir), bir listeye ekliyorsun (her nedense), sonra yazarken aralarına hiç yeni satir [Enter] karakteri koymadan ard arda RichTextBox'a ekliyorsun. Temel hata orada. Madem word'deki format onemli degil, sana lazım olan marşın sadece metni, neden RichTextBox kullanıyorsun? (sonradan formatlayacaksan tamam).

    Her neyse daha kısa ve basit sekli (OpenFileDialog kismini cikardim, orası olacak):

    void Main()
    {
    	string fileName = @"d:\temp\istiklalmarsi.docx";
    	var word = new Microsoft.Office.Interop.Word.Application();
    
    	var doc = word.Documents.Open(fileName);
    	var mars = doc.Content.Text;
    	doc.Close();
    	word.Quit();
    
    	var f = new Form();
    	var rtb = new RichTextBox {Dock=DockStyle.Fill, Text=mars};
    	f.Controls.Add(rtb);
    	f.Show();
    }

      Not: Biten sorularını, bir cevabi işaretleyerek kapatırsan sevinirim. Sanki hep cevapsız kalmış gibi gorunuyor.

     


    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    3 Ocak 2020 Cuma 08:25
    Yanıtlayıcı