Переименование дублирующихся столбцов автоматически при экспорте данных листа
Возможные сценарии использования
Иногда пользователь сталкивается с проблемой дублирующихся столбцов при экспорте данных с листа в таблицу данных. DataTable не может содержать дублирующиеся столбцы, поэтому дублирующиеся столбцы должны быть переименованы перед экспортом данных листа в таблицу данных. Aspose.Cells может автоматически переименовывать дублирующиеся столбцы в соответствии с указанной вами стратегией с использованием свойства ExportTableOptions.RenameStrategy. Если вы укажете RenameStrategy.Digit, столбцы будут переименованы как столбец1, столбец2, столбец3 и т. д., а если вы укажете RenameStrategy.Letter, то столбцы будут переименованы как столбецA, столбецB, столбецC и т. д.
Автоматическое переименование дублирующихся столбцов при экспорте данных рабочего листа
Приведенный ниже образец кода добавляет некоторые данные в первые три столбца листа, но все столбцы имеют одно и то же название, т. е. People. Затем он экспортирует данные с листа в таблицу данных, указывая стратегию RenameStrategy.Letter. Затем он выводит названия столбцов таблицы данных, сгенерированной Aspose.Cells. Ниже приведен снимок таблицы данных с экспортированными данными визуализатором. Как вы можете видеть, дублирующиеся столбцы были переименованы в PeopleA, PeopleB и т. д.
Образец кода
// 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); | |
} | |
Вывод в консоль
Вот консольный вывод приведенного выше образца кода для справки.
People
PeopleA
PeopleB