0
Excelファイルをダウンロードしてから読み込むc#webjobがあります。列の1つに、データベースに保存したいリンクが含まれています。私は現在、ExcelDataReaderを使用してExcelファイルをDataSetに変換してから、データを取得するために行をループします。変換後、問題の列はリンクテキストを含む文字列にすぎません。ExcelのセルからリンクURLを抽出する方法
Excelでのように聞こえるが、ハイパーリンクは別の場所に保存されており、ExcelファイルをDataSetに変換するとその情報は保持されません。
私はExcelDataReaderを使用するように設定されていませんが、これらのリンクURLを抽出するソリューションを見つけるには、3番目の部分のソフトウェアを支払う必要はありません。ここで
私はリファレンスとして、これまで持っている単純なコードです:私は私のExcelファイルを読むためにEPPLUSを使用して、ハイパーリンクのデータを取得することができるということになった
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を返します。セルに接続されたハイパーリンクオブジェクトは、ハイパーリンクコレクションの最初のアイテムになります。だからVBAでは、Range( "A1")、URLのためのHyperlinks(1).address'のようになります。 C#で同様のことをすることはできますか? –