ご覧のとおり、Excelファイルに多くのハイパーリンクを追加する必要があります。プログラマは手動で行う必要はありませんが、実行したいと考えています。プログラム的に 私はインターネットを介して検索しましたが、現在のExcelのハイパーリンクではなく、Webのハイパーリンクをプログラムで追加する方法しか見つけられません。 したがって、現在のExcelファイルのハイパーリンク(またはローカルのハイパーリンク)をプログラムで追加する方法を見つけるのが理想的だと思います。C#でExcelのセルにハイパーリンクを追加する方法
2
A
答えて
1
ライブラリのMicrosoft.Office.Interop.ExcelでExcelのセルにハイパーリンクを追加する方法が見つかりませんでしたが、クリップボードデータを使ってハイパーリンクを追加できるという理想が浮かんできました。
私はExcelのクリップボードのデータを調べ、ExcelデータがHTMLデータであることが分かっています。だから私は、HTMLなどのデータを処理し、Excelに貼り付け - とBAM - 私たちは、Excelのセル
私たちは、この
class HDNData
{
StringBuilder builder;
public void SetBuilder(StringBuilder dataBuilder)
{
this.builder = dataBuilder;
}
public string Data { get; set; }
public string Hyperlink { get; set; }
public string HexColor { get; set; }
public override string ToString()
{
builder.Clear();
bool hasHyperlink = !string.IsNullOrEmpty(Hyperlink);
bool hasColor = !string.IsNullOrEmpty(HexColor);
if (hasHyperlink)
{
builder.Append("<a href=\"");
builder.Append(Hyperlink);
builder.Append("\">");
}
if(hasColor)
{
builder.Append("<span style='color:");
builder.Append(HexColor);
builder.Append("'>");
}
builder.AppendLine(Data);
if (hasHyperlink)
builder.Append("</a>");
return builder.ToString();
}
}
class HDNHtml
{
StringBuilder builder = new StringBuilder();
StringBuilder cellBuilder = new StringBuilder();
private List<List<HDNData>> data = new List<List<HDNData>>();
public void Add(int i, HDNData hdnData)
{
if(i < data.Count)
{
hdnData.SetBuilder(cellBuilder);
data[i].Add(hdnData);
}
else
{
if (i == data.Count)
{
data.Add(new List<HDNData>());
hdnData.SetBuilder(cellBuilder);
data[i].Add(hdnData);
}
}
}
public override string ToString()
{
builder.Clear();
builder.AppendLine("<html>");
builder.AppendLine("<head></head>");
builder.AppendLine("<body>");
builder.AppendLine("<table>");
builder.AppendLine("<col>");
foreach (List<HDNData> row in data)
{
builder.AppendLine("<tr>");
foreach (HDNData col in row)
{
builder.AppendLine("<td>");
builder.Append(col.ToString());
builder.AppendLine("</td>");
}
builder.AppendLine("</tr>");
}
builder.AppendLine("</table>");
builder.AppendLine("</body>");
builder.AppendLine("</html>");
return builder.ToString();
}
}
のようなクラスを持って、この
のようなクラスを使用するためのハイパーリンクを得ましたHDNHtml hdn = new HDNHtml();
Random r = new Random();
HDNData hdnData = new HDNData();
hdnData.Data = r.Next().ToString();
hdnData.HexColor = "#FFCCFF";
hdn.Add(0,hdnData);
hdnData = new HDNData();
hdnData.Data = r.Next().ToString();
hdnData.Hyperlink = "#GTA";
hdn.Add(0, hdnData);
hdnData = new HDNData();
hdnData.Data = r.Next().ToString();
hdnData.Hyperlink = "#GTA";
hdn.Add(0, hdnData);
hdnData = new HDNData();
hdnData.Data = r.Next().ToString();
hdnData.Hyperlink = "#GTA";
hdn.Add(1, hdnData);
hdnData = new HDNData();
hdnData.Data = r.Next().ToString();
hdnData.Hyperlink = "#GTA";
hdn.Add(1, hdnData);
string data = hdn.ToString();
txtWarnings.Text = data;
Clipboard.SetText(data);
コードを実行し、クリップボードのデータをExcelのシートに貼り付けます。そのExcelワークブックでは、セル名:GTAを汚さなければならないので、ExcelのセルのハイパーリンクはそのGTAセルにリンクします。
2
ExcelがHYPERLINK()
functionをサポートしています。
HYPERLINK(link_location, [friendly_name])
は、私は、そのようなあなたが探しているものとしてHYPERLINK()
機能の一般的な例、については上記にリンクしたページを見てみましょう。
たとえば、次の数式はファイルを開き、年次のワークシートに移動し、F10を選択します。ハイパーリンクのテキストは、セルD1の内容です。上記の例で
、Excelファイルは、HTTPの場所にあるが、以下に示すように、それは同様に良好に、ローカルパスとすることができる:
=HYPERLINK("[D:\Documents\budget report.xlsx]Annual!F10", D1)
関連する問題
- 1. Excelで多くのセルのループを追加する方法
- 2. XWPFRunにハイパーリンクを追加する方法
- 3. グリッドビューにハイパーリンクを追加する方法
- 4. Excel VBAコード特定のセルにテキストを追加する方法
- 5. Excel Excelで別のテーブルにハイパーリンクを追加
- 6. $記号でハイパーリンクの値を追加する方法C#Infragistics ultragrid? C#インフラジスティックスで$記号でハイパーリンク値を追加する方法
- 7. C#では、IntellisenseをDataGridViewセルに追加する方法は?
- 8. Excelでピボットにレポートフィルタを追加する方法C#
- 9. C#でExcelファイルに新しい行を追加する方法
- 10. Objective CのUILabelでセル数を追加する方法
- 11. オフィス-JS - Excelのセルにコメントを追加
- 12. Excelの長い列にハイパーリンクを追加しますか?
- 13. Fusion Tablesのテキスト列にハイパーリンクを追加する方法は?
- 14. eclipseのコメントにハイパーリンクを追加する方法javadocs
- 15. VBAにアクセスする - Excelのセルに番号を追加する
- 16. pdfboxを使用してpdfにハイパーリンクを追加する方法
- 17. ExcelのスプレッドシートへのハイパーリンクをVBA電子メールに追加
- 18. Excel、CSVセルからハイパーリンクを生成
- 19. 剣道ハイパーリンクにルートURLを追加する方法
- 20. CSVエクスポートにハイパーリンクを追加する方法
- 21. C++でExcelセルの値を取得する方法
- 22. Excel VBAでセルの内容からハイパーリンクを作成する
- 23. ワークシート全体に広がる複数のセルにハイパーリンクを追加する
- 24. スペースを追加する方法Java apcheのハイパーリンクのアドレス
- 25. VBAを使用してExcelのセルにテキストを追加する
- 26. 各行がCのDataGridビューに追加されるたびにセルにボタンを追加する方法#
- 27. 異なる形式のdataGridViewセルにテキストを追加する方法C#
- 28. Excelのセル参照に数値を追加する
- 29. C#でExcelからDateTimeセルを正しくインポートする方法
- 30. Cからエクスポート中にExcelセルをフォーマットする方法