У меня есть функция, где загружается лист Excel, и ячейки считываются с использованием имен столбцов, которые соответствуют элементу в списке строк в серверной части. Мне нужно изменить имена столбцов (удалить пробелы и преобразовать в lower ()), чтобы они соответствовали элементам, когда я использую список строк в качестве имен столбцов для чтения таблицы Excel.
Я использую библиотеку IExcelDataReader из пакета nuget. Я прочитал все имена столбцов, используя этот пакет, и перебрал их, пытаясь изменить их, но я не смог этого сделать, поскольку это был режим только для чтения.
Что я могу сделать, чтобы изменить имена столбцов загруженного лист Excel.
public ActionResult Import(HttpPostedFileBase upload)
{
if (upload != null && upload.ContentLength > 0)
{
Stream stream = upload.InputStream;
IExcelDataReader reader = null;
if (upload.FileName.EndsWith(".xls") || upload.FileName.EndsWith(".xlsx"))
{
var file = upload.FileName;
reader = ExcelDataReader.ExcelReaderFactory.CreateReader(stream);
var conf = new ExcelDataSetConfiguration
{
ConfigureDataTable = _ => new ExcelDataTableConfiguration
{
UseHeaderRow = true
}
};
var dataSet = reader.AsDataSet(conf);
var Model = dataSet.Tables[0].Rows;
var meta = listOfStrings; // Column names to be read in a list
for (int i = 0; i < Model.Count; i++)
{
var dict = new Dictionary<string, string>();
foreach (var item in meta)
{
dict.Add(item, Model[i][item.ToLower().Trim()].ToString());
// During this stage I need the column names to exactly match my list of string
// What can I do to Convert my strings to lower case and trim them?
}
}
}
}
}