2012-01-09 2 views
0

Actuellement, j'utilise OleDB pour me connecter à Excel Spreadsheet et obtenir des données dans un DataTable, en faisant quelques modifications sur les données, puis en copiant les données dans Word. Ce faisant, je perds le formatage de la cellule, comme si une partie du texte était coloriée ou si la couleur de fond était grisée ou si elle était en gras. J'utilise la bibliothèque Interop pour communiquer avec le mot et OLEDB avec Excel.Comment maintenir le formatage des cellules lors de la copie des cellules d'Excel vers Word

Si cette solution n'est pas assez bonne pour ce que je dois réaliser, pouvez-vous suggérer des solutions alternatives? (Macros?) J'ai essayé d'utiliser Interop.Excel.Styles mais je n'arrive pas à comprendre comment le relier à la cellule actuellement utilisée.

Répondre

1

Nous copions la plage de la table dans la feuille de calcul et la collez directement dans le document Word qui préserve le formatage.

wordDoc.Tables.Add(b.Range,newsheet.UsedRange.Rows.Count,newsheet.UsedRange.Columns.Count); 
Microsoft.Office.Interop.Word.Table table = b.Range.Tables[1]; 
newsheet.UsedRange.Copy(); 
table.Range.Select(); 
wordApp.Selection.Paste(); 

Le motDoc ​​est Word.Document et wordApp est word.Application. Espérons que cela aide

0

Oui, ça va arriver. OleDB déplace les données, pas les informations de formatage. Si vous voulez le formatage, vous allez devoir copier/coller d'Excel vers Word. Si vous avez besoin d'automatiser le processus, VBA est le moyen le plus simple de contrôler Excel et Word de l'extérieur.

+0

Il est possible de déplacer avec la bibliothèque Interop avec le formatage préservé, mais comme j'ai besoin d'effectuer certaines manipulations, je suis handicapé là-bas. – gizgok

Questions connexes