2016-06-22 17 views
0

私はClosedXMLを使用してC#コードからExcelを生成しています。複数の行を持つ特定の列にハイパーリンクが必要で、すべてのリンクが一意です。C#.Netを使用したExcelのハイパーリンク

for (int i = 2; i <= result.Count + 1; i++) 
{ 
    ws.Cell(i, 44).Value = "Download"; 
    url = folderPath + "type=testPhoto&userName=" + Convert.ToString(result[i - 2].testCode); 
    ws.Cell(i, 44).Hyperlink = new XLHyperlink(url, "Download"); 
    ws.Cell(i, 44).Style.Font.FontColor = XLColor.AirForceBlue; 
    ws.Cell(i, 44).Style.Font.Underline = XLFontUnderlineValues.Single; 
} 

しかし、このループは時間がかかりすぎています。このループをスキップする方法はありますか?

+0

'result.Count'どのくらいいるのですか?あなたは 'ws.Column(44).Style.Font ...'のような1つの呼び出しにスタイリングを分けることができますが、どのくらいの違いがあるかは分かりません。 – Raidri

+0

result.Countは最大1 lakh値を持つことができます。しかし、15kだけではあまりにも多くの時間がかかります。 – DevD

答えて

0

は、この最適化されたコードを試してみて、それがあなたのために十分に高速であれば参照してください。

ws.Column(44).Style.Font.SetFontColor(XLColor.AirForceBlue) 
    .Font.SetUnderline(XLFontUnderlineValues.Single; 
url = folderPath + "type=testPhoto&userName="; 

for (int i = 2; i <= result.Count + 1; i++) 
{ 
    ws.Cell(i, 44).SetValue("Download").Hyperlink = 
     new XLHyperlink(url + Convert.ToString(result[i - 2].testCode), "Download"); 
} 
関連する問題