2017-03-28 1 views
1

Comment convertir une feuille particulière au format CSV à partir d'Excel en utilisant C# Interop? Est-ce que c'est par défaut à la première feuille ou est-ce que je peux spécifier?Convertir une feuille particulière en excel en csv

C'est le code que je utilise:

private void ConvertProgsToCSV() 
    { 
     Excel.Application app = new Excel.Application(); 
     Excel.Workbook wb = app.Workbooks.Open(txtFname.Text); 
     wb.SaveAs(@"C:\Temp\output.csv", Excel.XlFileFormat.xlCSVWindows); 
     wb.Close(false); 
     app.Quit(); 
     Console.WriteLine("Done!"); 
    } 
+0

Vous pouvez sélectionner l'onglet, puis enregistrez/convertir au format CSV. Il ne doit pas être le premier onglet, mais il doit être explicitement sélectionné. Qu'avez-vous essayé/code avez-vous déjà? – gms0ulman

+0

Comment sélectionnez-vous l'onglet? Je ne vois aucune méthode pour cela dans la classe _Workbook.SaveAs. –

+0

Vous avez besoin de la méthode 'Select' qui fait partie de l'objet [Worksheet] (https://msdn.microsoft.com/en-us/library/office/ff194464.aspx) (' wb.Worksheet' dans votre code). Puis enregistrer comme d'habitude! – gms0ulman

Répondre

2

Vous devez ouvrir feuille par son nom et sélectionnez-le en utilisant Select() fonction:

xlSheet = (Excel.Worksheet)xlBook.Worksheets["Sheet1"]; 
xlSheet.Select(Type.Missing); 
xlBook.SaveAs("C:\Filename.csv", Excel.XlFileFormat.xlCSV,Excel.XlSaveAsAccessMode.xlNoChange); 

En supposant que xlSheet est de type Interop.Excel.WorkSheet et xlBook est de type Interop.Excel.Workbook

Vous pouvez consulter ces liens pour plus d'informations:

+0

J'ai cette erreur sur la première ligne: "Membre non invocable 'Microsoft.Office.Interop, Excel._Workbook.Worksheets' ne peut pas être utilisé comme une méthode –

+0

J'ai ceci en utilisant Excel = Microsoft.Office.Interop.Excel ; –

+0

vous devez utiliser '[]' au lieu de '()', j'ai corrigé la réponse – Hadi