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