entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Seleccionar Celda al Crear Archivo EXCEL

Buenos Días primero que nada un saludo a todos en el foro bueno soy nuevo en esto de la programacion en C sharp y tengo una duda.

Aquí les adjunto el codigo de mi aplicación en C# y el archivo que intento leer.

Como verán en el txtBox se muestran los datos del archivo.txt pero al seleccionar el botón de generar reporte se crea el documento en excel con un formato previamente definido e introduce los datos del .TXT desde la celda [A1] y por eso los quiero desde la celda [A11].

Si alguien me pudiera ayudar a descubrir o decirme como hacerlo se los agradeceria infinitamente.

//Boton para seleccionar archivo .TXT a leer
private void button1_Click(object sender, EventArgs e)
        {

            // El dialogo solo Muetra los Archivos .txt y .csv
            opd.Filter = "Archivos txt o csv (*.txt)(*.csv)|*.txt;*.csv";
       // Nombre del Programa
            opd.Title = "Lector de Archivo de Texto";

            //Directorio Inicial
            opd.InitialDirectory = @"C:\Users\RAC SALAMANCA\Desktop";

            if (opd.ShowDialog() == DialogResult.OK)
            {
                this.txtDireccion.Text = opd.FileName;   // Coloca la dirección del Archivo
                // this.textbox3.Text = DialogoTxt.SafeFileName;   // Se coloca el nombre del archivo seleccionado
            }

            // Imprimir el contenido del archivo analizado en el txtContenido
            StreamReader sr = new StreamReader(@txtDireccion.Text, System.Text.Encoding.Default);
            string texto;
            texto = sr.ReadToEnd();
            txtContenido.Text = texto;
            sr.Close();
            opd.Dispose(); // Finalizar el método
            // Abrir y leer el archivo que ha sido seleccionado 
            FileStream stream = new FileStream(@txtDireccion.Text, FileMode.Open, FileAccess.Read);
        }

//Boton para crear archivo en excel con un formato definido
  private void reporteDeAguaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Excel._Worksheet  xlWorkSheet_1;
            Excel._Workbook xlWorkBook_2;
            Excel.Application xlApp_1;     
            Excel.Range range;
// Iniciar Excel y obtener el objeto aplicación
                xlApp_1 = new Excel.Application();
                // xlApp_1.Visible = true;   // Mostrar documento en cuanto se seleccione el botón

                // Antes de crear un nuevo libro, se debe verificar si Excel está instalado en el sistema
                if (xlApp_1 == null)
                {
                    MessageBox.Show("Excel no está apropiadamente instalado");
                    return;
                }

                // Obtener un nuevo libro de trabajo y una nueva hoja de trabajo
                object misValue_1 = Missing.Value;
                xlWorkBook_2 = xlApp_1.Workbooks.Add(misValue_1); ;
                 xlApp_1.DisplayAlerts = false; // Ocultar notificaciones de Excel
                 // Abrir el archivo de Excel haciendo referencia a un archivo de Excel existente
                 xlWorkSheet_1 = (Excel._Worksheet)xlWorkBook_2.Worksheets.get_Item(1);
                 xlWorkBook_2 = xlApp_1.Workbooks.Open(@txtDireccion.Text, 0, true, 2, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);//Se abre un OpenFileDialog para seleccionar el archivo
                 Excel.Sheets worksheets = xlWorkBook_2.Worksheets;
                xlWorkSheet_1 = (Excel._Worksheet)xlWorkBook_2.Worksheets.get_Item(1);
               //Aqui se le da el formato a mi reporte Generado en excel
                //Ocultar las lineas de la cuadricula
                range = xlWorkSheet_1.Cells;
                range.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.White);   // Determinar color interior 
                           // FORMATO DE LA HOJA EXCEL
                range = xlWorkSheet_1.get_Range("a3", "g3");
                xlWorkSheet_1.get_Range("a3", "e3").Merge(false);   // Combinar celdas
                range = xlWorkSheet_1.get_Range("a3", "e3");
                range.FormulaR1C1 = "Reporte de Producción de Agua por Pozo";
                range.Font.Size = 20;
                range.Font.Name = "Arial";
                range = xlWorkSheet_1.get_Range("a3");
                range.EntireRow.Font.Bold = true;   // Fila entera de A3 con letra negrita
                range = xlWorkSheet_1.get_Range("a5", "a5");
                range.FormulaR1C1 = "Pozo o Carcamo:";
                range = xlWorkSheet_1.get_Range("a6", "a6");
                range.FormulaR1C1 = "Variable(s):";
                range = xlWorkSheet_1.get_Range("a7", "a7");
                range.FormulaR1C1 = "Rango de \n fechas:";
                range = xlWorkSheet_1.get_Range("F7", "F7");
                range.FormulaR1C1 = "Fecha:";
                range = xlWorkSheet_1.get_Range("G7", "G7");
                range.FormulaR1C1 = "=Today()";   // Asignar feca actual
                range = xlWorkSheet_1.get_Range("B42", "B42");
                range.FormulaR1C1 = "Promedios grales";
                range.EntireColumn.AutoFit();
                range = xlWorkSheet_1.get_Range("b42", "f42");
                range.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Aqua);   // Determinar color interior 
                range = xlWorkSheet_1.get_Range("f43", "f43");
                range.FormulaR1C1 = "Total:";
                range = xlWorkSheet_1.get_Range("f43", "g43");
                range.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Aqua);   // Determinar color interior 
              range = xlWorkSheet_1.get_Range("a1", "a2");
                range.EntireColumn.AutoFit();   // Asignar tamaño a la columna automáticamente
                //Tamaño de las columnas y filas seleccionadas
                xlWorkSheet_1.get_Range("a3").RowHeight = 27.75;
                xlWorkSheet_1.get_Range("D1", "G1").ColumnWidth = 21.7;
                xlWorkSheet_1.get_Range("c1").ColumnWidth = 18.7;
                xlWorkSheet_1.get_Range("B6", "C6").Merge(false);   // Combinar celdas
                xlWorkSheet_1.get_Range("B7", "C7").Merge(false);   // Combinar celdas

                //Rellenar el encabezado de la tabla 
                range = xlWorkSheet_1.get_Range("A10", "G10");
                range.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightBlue);   // Determinar color interior en la celda de cabecera
                range.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);   // Determinar el color de la letra en la celda de cabecera
                range.Font.Size = 12;   // Tamaño de fuente
                range.Font.Bold = true; //Letra negrita

                xlWorkBook_2.SaveAs(@"C:\Users\RAC SALAMANCA\Desktop\Reporte de Producción de Agua Por Mes.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue_1, misValue_1, misValue_1, misValue_1, Excel.XlSaveAsAccessMode.xlExclusive, misValue_1, misValue_1, misValue_1, misValue_1, misValue_1);
           // Cerrar libro de trabajo
                xlWorkBook_2.Close(true, misValue_1, misValue_1);
                // Cerrar aplicación
                xlApp_1.Quit();
                releaseObject(xlWorkSheet_1);
                releaseObject(xlWorkBook_2);
                releaseObject(xlApp_1);
            }

        }

Estoy usando la biblioteca Interop de Excel (using Excel = Microsoft.Office.Interop.Excel;)
También uso Microsoft Excel 15.0 Object Library

De nuevo un saludo y muchas gracias a todos

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta