À L'Aide De Microsoft.Bureau de.Interop pour enregistrer le fichier créé avec C#

J'ai ce code qui permettra de créer un fichier excel et de la feuille de travail puis insérez mêmes valeurs.

Le problème que je me pose, que je ne suis pas en mesure d'enregistrer le fichier avec le nom donner dix à proximité.

J'ai utilisé SaveAs mais ne fonctionne pas:

wb.SaveAs(@"C:\mymytest.xlsx", missing, missing, missing, missing,
     missing, XlSaveAsAccessMode.xlExclusive, missing, missing, missing, missing, missing);

cette ligne de code me donnerait cette erreur:

Microsoft Office Excel ne peut pas accéder au fichier 'C:\A3195000'. Il y a plusieurs raisons possibles:

• Le nom de fichier ou chemin d'accès n'existe pas.
• Le fichier est utilisé par un autre programme.
• Le classeur que vous tentez d'enregistrer le même nom qu'un classeur actuellement ouvert.

s'il vous plaît conseils pour résoudre ce problème.

voici mon code:

private void button1_Click(object sender, EventArgs e)
{
  Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

  if (xlApp == null)
  {
    MessageBox.Show("EXCEL could not be started. Check that your office installation and project references are correct.");
    return;
   }
   xlApp.Visible = true;

   Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
   Worksheet ws = (Worksheet)wb.Worksheets[1];

   if (ws == null)
   {
     MessageBox.Show("Worksheet could not be created. Check that your office installation and project references are correct.");
   }

   //Select the Excel cells, in the range c1 to c7 in the worksheet.
   Range aRange = ws.get_Range("C1", "C7");

   if (aRange == null)
   {
     MessageBox.Show("Could not get a range. Check to be sure you have the correct versions of the office DLLs.");
   }

   //Fill the cells in the C1 to C7 range of the worksheet with the number 6.
   Object[] args = new Object[1];
   args[0] = 6;
   aRange.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, aRange, args);

   //Change the cells in the C1 to C7 range of the worksheet to the number 8.
   aRange.Value2 = 8;
   //      object missing = Type.Missing;
   //      wb.SaveAs(@"C:\mymytest.xlsx", missing, missing, missing, missing,
   //missing, XlSaveAsAccessMode.xlExclusive, missing, missing, missing, missing, //missing);

}
Pourquoi êtes-vous à l'aide de Type.InvokeMember() pour définir les valeurs des cellules?
J'ai reçu cet exemple de site MSDN donc je suis en train de l'utiliser et de l'est à l'aide de Type.InvokeMember() serait la cause de problème pour enregistrer le fichier?
Non, il semble juste comme une drôle de manière de le faire.

OriginalL'auteur Eyla | 2010-04-18