У меня есть веб-сайт C#, который загружает, а затем читает файл Excel. Один из столбцов содержит ссылки, которые я хотел бы сохранить в моей базе данных. В настоящее время я использую ExcelDataReader для преобразования файла Excel в DataSet, а затем цикл через строки для захвата данных. После преобразования рассматриваемый столбец в этот момент представляет собой только строку, содержащую текст ссылки.Как извлечь URL-адрес ссылки из ячейки Excel
Из некоторых других чтений это похоже на Excel, гиперссылки хранятся в другом месте, и эта информация не сохраняется при преобразовании файла Excel в DataSet.
Я не настроен на использование ExcelDataReader, но хотел бы найти решение для извлечения этих URL ссылок без необходимости платить за программное обеспечение третьей части.
Вот простой код, который я до сих пор в качестве ссылки:
FileStream stream = File.Open(fileLocation, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
excelReader.IsFirstRowAsColumnNames = true;
DataSet result = excelReader.AsDataSet();
int count = 0;
foreach (DataRow row in result.Tables["WorkSheetName"].DataTable.Rows)
{
var item = new myObject();
item.Prop1 = long.Parse(row["Column3"].ToString());
item.Prop2 = row["Column7"].ToString(); //The link, currently only seeing link text
this.myDbContext.myTable.Add(item);
await this.myDbContext.SaveChangesAsync();
count += 1;
}
Я не понимаю, у вас есть строка, и вы хотите, чтобы преобразовать его в URL? –
В файле Excel это гиперссылка. При чтении ячейки в виде строки она извлекает только текст ссылки, а не URL-адрес, к которому ведет ссылка. –
В VBA свойство адреса гиперссылки, прикрепленной к ячейке, вернет URL. Объект гиперссылки, прикрепленный к ячейке, будет первым элементом в коллекции Hyperlinks. Таким образом, в VBA это выглядело бы как «Range (« A1 »). Гиперссылки (1) .address' для URL-адреса. Можете ли вы сделать что-то подобное в C#? –