2012-08-24 6 views
1

La table que j'essaie d'exporter est importée dans Crystal Reports à partir d'une base de données SQL dans Visual Studio 2008 où je crée une application Web avec C#. J'essaye de l'exporter vers un document de mot mais pour garder le formatage de table que je peux plus tard éditer dans MS WORD. Cependant, tout ce que je reçois est un tas de zones de texte.Comment exporter une table modifiable dans des rapports Crystal vers un document Word en utilisant C#?

J'ai essayé de l'exporter en tant que document Excel, puis de le copier sur un mot, et cela a fonctionné, mais je dois pouvoir le faire uniquement à l'aide du code C#. Donc la question est: Y at-il une meilleure façon d'avoir directement une table éditable dans un document Word exporté à partir de rapports Crystal, ou existe-t-il une solution pour copier une table Excel dans Word mais seulement par C# code?

J'apprécie vraiment toute aide! Je googling pour quelques jours et je n'ai toujours pas trouvé une solution appropriée ...

Répondre

0

J'ai réussi à insérer le document Excel à Word, puis enregistrez-le. Le problème mineur avec juste tha chemins de données a besoin d'un peu de peaufinage, mais à part ça ça marche :)

ConvertExcelToWordAndAutoSave private void (

) {

 Excel.Application xlApp; 
     Excel.Workbook xlWorkBook; 
     Excel.Worksheet xlWorkSheet; 
     //TT Excel.Range range; 



     object misValue = System.Reflection.Missing.Value; 

     DateTime dt = new DateTime(); 
     dt = DateTime.Now; 

      // open excel 
      xlApp = new Excel.ApplicationClass(); 
      //Change THE LOCATION! 
      xlWorkBook = xlApp.Workbooks.Open("C:\\Documents and Settings\\Student\\Desktop\\ExportFiles\\Excel.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 
      xlWorkSheet=(Excel.Worksheet)xlWorkBook.ActiveSheet; 




      // open word 
      object oMissing = System.Reflection.Missing.Value; 
      object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ 

      //Start Word and create a new document. 
      Word._Application oWord; 
      Word._Document oDoc; 

      oWord = new Word.Application(); 
      oWord.Visible = true; 
      oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing); 



      Word.Paragraph oPara1; 
      oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing); 
      oPara1.Range.Text = "Snimeno na:" + " " + dt+"\n"; 
      oPara1.Range.Font.Bold = 1; 
      oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph. 
      oPara1.Range.InsertParagraphAfter(); 




      xlWorkSheet.get_Range("A1", "N49").Copy(Missing.Value); 

      oWord.Selection.Paste(); 

      oWord.Selection.TypeParagraph(); 
      //The textBox is for the name of the new Word document 
      if (TextBox1.Text == "") 
       TextBox1.Text = "Document1"; 
     object fileName = @"C:\\Documents and Settings\\Student\\Desktop\\ExportFiles\\"+TextBox1.Text+".docx"; 

      oDoc.SaveAs(ref fileName, 
      ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
      ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
      ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); 
Questions connexes