Renombrar columnas duplicadas automáticamente al exportar datos de hoja de cálculo
Escenarios de uso posibles
A veces el usuario se enfrenta a un problema de columnas duplicadas al exportar datos de la hoja de cálculo a la tabla de datos. DataTable no puede tener columnas duplicadas, por lo que las columnas duplicadas deben ser renombradas antes de poder exportar los datos de la hoja de cálculo a la tabla de datos. Aspose.Cells puede renombrar automáticamente las columnas duplicadas según la estrategia especificada por usted con la propiedad ExportTableOptions.RenameStrategy. Si especifica RenameStrategy.Digit, las columnas se renombrarán como column1, column2, column3, etc. y si especifica RenameStrategy.Letter, entonces las columnas se renombrarán como columnaA, columnaB, columnaC, etc.
Renombrar columnas duplicadas automáticamente al exportar datos de la hoja de cálculo
El siguiente código de muestra agrega algunos datos en las tres primeras columnas de la hoja de cálculo, pero todas las columnas tienen el mismo nombre, es decir, People. Luego exporta los datos de la hoja de cálculo a la tabla de datos especificando la estrategia RenameStrategy.Letter. Luego imprime los nombres de las columnas de la tabla de datos generada por Aspose.Cells. La siguiente captura de pantalla muestra la tabla de datos con los datos exportados en el visualizador. Como puede ver, las columnas duplicadas han sido renombradas a PeopleA, PeopleB, etc.
Código de muestra
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
//Create a workbook. | |
Workbook wb = new Workbook(); | |
//Access first worksheet. | |
Worksheet ws = wb.Worksheets[0]; | |
//Write the same column name in columns A, B and C. | |
string columnName = "People"; | |
ws.Cells["A1"].PutValue(columnName); | |
ws.Cells["B1"].PutValue(columnName); | |
ws.Cells["C1"].PutValue(columnName); | |
//Insert data in column A, B and C. | |
ws.Cells["A2"].PutValue("Data"); | |
ws.Cells["B2"].PutValue("Data"); | |
ws.Cells["C2"].PutValue("Data"); | |
//Create ExportTableOptions and specify that you want to rename | |
//duplicate column names automatically via RenameStrategy property. | |
ExportTableOptions opts = new ExportTableOptions(); | |
opts.ExportColumnName = true; | |
opts.RenameStrategy = RenameStrategy.Letter; | |
//Export data to data table, duplicate column names will be renamed automatically. | |
System.Data.DataTable dataTable = ws.Cells.ExportDataTable(0, 0, 4, 3, opts); | |
//Now print the column names of the data table generated by Aspose.Cells while exporting worksheet data. | |
for (int i = 0; i < dataTable.Columns.Count; i++) | |
{ | |
Console.WriteLine(dataTable.Columns[i].ColumnName); | |
} | |
Salida de la consola
Aquí está la salida de la consola del código de muestra anterior como referencia.
People
PeopleA
PeopleB