2017-08-08 1 views
0

J'ai le code ci-dessousCréer répéter les lignes de mot en utilisant Interop

string html = @"<table> 
<tr> 
<td>Column1</td> 
<td>Column2</td> 
</tr> 
<tr> 
<td>Column1 Data</td> 
<td>Column 2 Data</td> 
</tr></table>"; 

Ceci est juste une chaîne qui contient une table html (celui que j'ai en fait est assez énorme et je l'obtenir à partir d'une procédure stockée)

le code ci-dessous lit cette chaîne html et il insère dans un document Word

public static bool CreateFormattedWord(string html) 
    { 
     Application wordApp = new Application();  
     wordApp.Visible = true; 
     Document doc = wordApp.Documents.Add();  
     object missing = Type.Missing; 
     ContentControl contentControl = doc.ContentControls.Add(WdContentControlType.wdContentControlRichText, ref missing);  
     contentControl.Range.InsertFile(SaveToTemporaryFile(html), ref missing, ref missing, ref missing, ref missing);  

     Console.Read(); 
     return true; 
    } 

    public static string SaveToTemporaryFile(string html) 
    { 
     string htmlTempFilePath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), string.Format("{0}.html", System.IO.Path.GetRandomFileName())); 
     using (StreamWriter writer = File.CreateText(htmlTempFilePath)) 
     { 
      html = string.Format("<html>{0}</html>", html); 
      writer.WriteLine(html); 
     } 
     return htmlTempFilePath; 
    } 

je peux aller au mot créé le document sélectionnez la table que j'inséré et aller mises en page et cliquez sur REPEA t En-tête de tableau et il répète cela dans le document.

Comment puis-je obtenir la même fonctionnalité en utilisant Interop dans le code que j'ai, de façon à ce que les en-têtes Table soient répétés lorsque la table est insérée dans le document?

Répondre

-2
var tableID = doc.Tables[1]; 
    tableID.Rows[1].HeadingFormat = -1; 

Le code ci-dessus semble faire l'affaire

Je suis la réponse de deux liens

https://stackoverflow.com/questions/16032867/accessing-a-table-by-name-in-word-using-c-sharp 

https://stackoverflow.com/questions/1816957/how-can-i-create-a-header-in-a-table-for-each-new-page-with-word-interop 
+0

Soyez sûr d'accepter votre réponse :) – cubrr

+0

Salut user1221989, vous êtes en mesure d'accepter cette répondre, comme @cubrr a suggéré? Merci. Ping-moi si vous n'êtes pas sûr de savoir comment le faire. – halfer

+0

Cela ne fonctionne pas pour moi, l'en-tête ne se répète jamais sur les lignes – R2D2