2009-10-13 11 views
2

Pourquoi ne puis-je pas écrire des valeurs dans Excel à l'aide de la classe Worksheet ou de l'interface Sheet? Je pense pouvoir faire quelque chose comme ceci:Ecriture de données dans des cellules dans Excel 2007/PowerShell

[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Interop.Excel") 
$Excel = New-Object Microsoft.Office.Interop.Excel.ApplicationClass 
$Workbook = $Excel.Workbooks.Add() 
$Worksheet = $Workbook.Worksheets.Add() 
$Worksheet.Cells.Item(1,1).Value2 = "Test" 

Mais au contraire, il semble que vous devez écrire des valeurs en utilisant l'objet ApplicationClass:

[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Interop.Excel") 
$Excel = New-Object Microsoft.Office.Interop.Excel.ApplicationClass 
$Workbook = $Excel.Workbooks.Add() 
$Worksheet = $Workbook.Worksheets.Add() 
$Excel.Cells.Item(1,1).Value2 = "Test" 

Cela ne semble pas logique de me , parce que j'écris la valeur de la feuille de travail spécifique avec laquelle je travaille, pas au niveau de l'application.

Des commentaires à ce sujet?

Répondre

3

Je ne peux pas reproduire cela. Ton ancien exemple fonctionne parfaitement pour moi. J'ai vérifié en définissant $ Excel.Visible = $ true et je peux voir "Test" dans la cellule (1,1).

-Oisin

+0

Fonctionne bien pour moi aussi. –

+0

Ok, maintenant je me sens comme un idiot ... J'aurais pu jurer que j'ai essayé cela un million de fois dans le passé et ça n'a jamais marché. Avancer, rien à voir ici :( Merci de votre validation, les gars ... –

Questions connexes