Hola!
Empezaré por mostrarles mi código donde le pido al usuario que ingrese los siguientes datos: Nombre,apellido,edad y sexo.
Esos datos se guardaran en Excel.
Tengan en cuenta que el archivo ya tiene datos en él guardados.
mi código es el siguiente:
void EscribirEnExcel(string pathfile)
{
string nombre="", apellido = "", sexo = "";
char opt;
int? Edad = null;
SLDocument sL = new SLDocument(pathfile);
SLWorksheetStatistics stats = sL.GetWorksheetStatistics();
System.Data.DataTable dataTable = new System.Data.DataTable();
int row = stats.EndRowIndex;
Console.WriteLine(row);
do {
Console.WriteLine("Desea añadir más datos? Si(y) No(n) ");
opt = Convert.ToChar(Console.ReadLine());
row++;
switch (opt)
{
case 'y':
Console.WriteLine("Escriba su: nombre,apellido,edad y sexo");
nombre = Console.ReadLine();
apellido = Console.ReadLine();
Edad = Convert.ToInt32(Console.ReadLine());
sexo = Console.ReadLine();
dataTable.Columns.Add("Nombre", typeof(string));
dataTable.Columns.Add("Apellido", typeof(string));
dataTable.Columns.Add("Edad", typeof(int));
dataTable.Columns.Add("Sexo", typeof(string));
//registros
dataTable.Rows.Add(nombre, apellido, Edad, sexo);
sL.ImportDataTable(row, 1, dataTable, false);
sL.Save();
break;
case 'n':
break;
}
} while (opt != 'n') ;
}
La segunda vez que trato de introducir datos al archivo me muestra el siguiente error:
'La columna 'Nombre' ya pertenece a DataTable.' en esta parte del código
dataTable.Columns.Add("Nombre", typeof(string));
Y si quito las columnas, me aparece el siguiente error:
'La matriz de entrada es más larga que el número de columnas en esta tabla.'
en
dataTable.Rows.Add(nombre, apellido, Edad, sexo);
¿cómo podría hacerlo de tal manera que puede ingresar los datos sin que me marque ninguno de los errores mencionados?