Rtf String naar Excel cel

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
Ik ben bezig om een export te maken van data naar excel. Een van de gegevens in een rtf tekst die oorspronkelijk door een RichTextBox wordt onderhouden.
Nu wil ik deze tekst in Excel hebben, met behoud van opmaak.
Alle mogelijke oplossingen die ik tot nu toe heb gevonden zorgen ervoor dat de rtf codes in de cell geplakt worden ipv geinterpreteerd.

Op simpel form met een RichTextbox en een button kom ik tot nu toe tot dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application excel = new Excel.Application();
            Excel.Workbook workbook = (Excel.Workbook)excel.Workbooks.Add(Missing.Value);
            Excel.Worksheet sheet = (Excel.Worksheet)workbook.ActiveSheet;

            excel.Visible = true;

            sheet.Cells[1, 1] = " Test van rtf in de volgende cell:";
            Excel.Range range = (Excel.Range)sheet.Application.get_Range("A2", Missing.Value);

            range.Value2 = richTextBox1.Rtf;
        }


Heeft iemand dit al eerder gedaan? Enig idee of mogelijk is wat ik wil? Het mag de meest quick-and-dirty manier zijn die er is, de klant krijgt uiteindelijk alleen de excel, niet de code :)

Problem Exists Between Chair And Keyboard


Acties:
  • 0 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 23-08 23:43
*laten we het modden aan de modderaars over?*

[ Voor 83% gewijzigd door MueR op 28-08-2010 23:27 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Als ik even google lijkt de snelste oplossing via het clipboard te gaan, en dat is hier geen probleem als quick-and-dirty is toegestaan. Al geprobeerd? ;)

[ Voor 10% gewijzigd door pedorus op 28-08-2010 23:35 ]

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
Dat heb ik geprobeerd. Ook daar heb ik geen geluk: de rtf codes worden geplakt in de cel die ik aangeef.

worksheet.Cells[1,2] = RichTextBox1.Rtf geeft de rtf codes
worksheet.Cells[1,2] = RichTextBox1.Text geeft de kale tekst.

Ook via het creeeren van een range in het werkblad en vervolgens de inhoud plakken geeft de rtf codes in de cel.

Problem Exists Between Chair And Keyboard


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Mm, dat bedoelde ik niet, maar bij nader inzien kent Excel het RTF-clipboard formaat niet. :p Word wel, dus iets als het volgende werkt:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            var word = new Word.Application();
            object missing = Missing.Value;
            var wd = word.Documents.Add(ref missing, ref missing, 
                ref missing, ref missing);
            var excel = new Excel.Application();
            var workbook = excel.Workbooks.Add(Missing.Value);
            var sheet = (Excel.Worksheet) workbook.Sheets[1];
            Clipboard.SetText(richTextBox1.Rtf, TextDataFormat.Rtf);
            word.Selection.Paste();
            word.Selection.WholeStory();
            word.Selection.Copy();
            sheet.Paste(Missing.Value, Missing.Value);
            word.Visible = true;
            excel.Visible = true;
            excel.UserControl = true;

(Ja, nogal vies)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
Ik had de optie om via het ClipBoard te kopieren ook al geprobeerd, maar nog niet via Word.

Lelijk, inderdaad. Maar het werkt. Bedankt!

Problem Exists Between Chair And Keyboard

Pagina: 1