Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Hartigan en 2 Septiembre 2010, 21:05 pm



Título: Duda con ruta al exportar a Excel (C#) [SOLUCIONADO]
Publicado por: Hartigan en 2 Septiembre 2010, 21:05 pm
Hola amig@s. Tengo un pequeño problema.

Estoy haciendo que se puedan exportar los datos de un datagridview a varios formatos y uno de ellos es excel. El caso es que no se como ponerle la ruta que yo queira donde guardar el fichero de destino. Es decir yo quiero que se guarde en una ruta que especifico en un textbox, pero no se como hacerlo.

Mi código por si sirve de algo es:

Código
  1. .....                
  2.                Excel.Application xlApp;
  3.                Excel.Workbook xlWorkBook;
  4.                Excel.Worksheet xlWorkSheet;
  5.  
  6.                object misValue = System.Reflection.Missing.Value;
  7.  
  8.                try
  9.                {
  10.                    xlApp = new Excel.ApplicationClass();
  11.                    xlWorkBook = xlApp.Workbooks.Add(misValue);
  12.                    xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
  13.                    int i = 0;
  14.                    int j = 0;
  15.  
  16.                    for (i = 0; i < dataGridView1.Columns.Count; i++)
  17.                    {
  18.                        if (dataGridView1.Columns[i].Visible == true)
  19.                        {
  20.                            xlWorkSheet.Cells[1, i] = dataGridView1.Columns[i].HeaderText;
  21.                        }
  22.                    }
  23.  
  24.                    for (i = 0; i <= dataGridView1.RowCount - 1; i++)
  25.                    {
  26.                        for (j = 1; j <= dataGridView1.ColumnCount - 1; j++)
  27.                        {
  28.                            DataGridViewCell cell = dataGridView1[j, i];
  29.                            xlWorkSheet.Cells[i + 2, j] = cell.Value;
  30.                        }
  31.                    }
  32.  
  33.                    xlWorkBook.SaveAs(textBoxDestino.Text + "\\" + textBoxNombre.Text, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
  34.                    xlWorkSheet.Columns.AutoFit();
  35.                    xlWorkBook.Close(true, misValue, misValue);
  36.                    xlApp.Quit();
  37.  
  38.                    releaseObject(xlWorkSheet);
  39.                    releaseObject(xlWorkBook);
  40.                    releaseObject(xlApp);
  41.  
  42.                    MessageBox.Show("Archivo Excel creado con éxito", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
  43.                }
  44.                catch (Exception ex)
  45.                {
  46.                    MessageBox.Show("No se ha podido crear el archivo Excel", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
  47.                }
  48. .....
  49.  

A ver si me podeis ayudar. Salu2. xD


Título: Re: Duda con ruta al exportar a Excel (C#)
Publicado por: raul338 en 2 Septiembre 2010, 21:51 pm
Código
  1. using System.IO;
  2.  
  3. //............
  4. if (!Directory.Exits(textBoxDestino.Text)) {
  5.   try {
  6.      Directory.CreateDirectory(textBoxDestino.Text);
  7.   } catch {
  8.      MessageBox.Show("Directorio no valido");
  9.      return;
  10.   }
  11. }
  12. xlWorkBook.SaveAs(textBoxDestino.Text + "\\" + textBoxNombre.Text, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
  13. .....
  14.  

A ver si me podeis ayudar. Salu2. xD

Fijate si te sirve :)


Título: Re: Duda con ruta al exportar a Excel (C#)
Publicado por: Hartigan en 3 Septiembre 2010, 19:00 pm
No, eso no funciona, más que nada porque no afecta a la configuración del excel... Crearia una carpeta sin más en el sistema pero ahi no guardaría el archivo. lol. xDD

gracias de todos modos. Alguna solución más?

EDITO: ya lo he conseguido. es tan secillo como poner:

Código
  1. ...
  2. string filename = this.textboxDestino.Text + "\\" + this.textBoxNombre.Text;
  3. ...
  4. ....
  5. xlWorkBook.SaveAs(@filename, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
  6.  
  7. ....
  8.  

Salu2. ;)