ご覧のとおり、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. グリッドビューにハイパーリンクを追加する方法
- 3. XWPFRunにハイパーリンクを追加する方法
- 4. Excel VBAコード特定のセルにテキストを追加する方法
- 5. $記号でハイパーリンクの値を追加する方法C#Infragistics ultragrid? C#インフラジスティックスで$記号でハイパーリンク値を追加する方法
- 6. Excel Excelで別のテーブルにハイパーリンクを追加
- 7. Excelのヘルプ:テキスト/セルを追加する方法を一緒
- 8. C#では、IntellisenseをDataGridViewセルに追加する方法は?
- 9. Excelでピボットにレポートフィルタを追加する方法C#
- 10. C#でExcelファイルに新しい行を追加する方法
- 11. Objective CのUILabelでセル数を追加する方法
- 12. オフィス-JS - Excelのセルにコメントを追加
- 13. Primeng datatableの列に角2の方法でハイパーリンクを追加する方法
- 14. excelフィルタリングされたセルにのみインデックスを追加する方法
- 15. C#OpenXmlWriter(OpenXML SDK 2.5)を使用してExcelシートのすべての行にセルを追加する方法
- 16. .rdlファイルの列にハイパーリンクを追加する方法
- 17. eclipseのコメントにハイパーリンクを追加する方法javadocs
- 18. Fusion Tablesのテキスト列にハイパーリンクを追加する方法は?
- 19. href.locationハイパーリンクにターゲットの空白を追加する方法
- 20. Excelの長い列にハイパーリンクを追加しますか?
- 21. VBAにアクセスする - Excelのセルに番号を追加する
- 22. pdfboxを使用してpdfにハイパーリンクを追加する方法
- 23. ExcelのスプレッドシートへのハイパーリンクをVBA電子メールに追加
- 24. CSVエクスポートにハイパーリンクを追加する方法
- 25. 剣道ハイパーリンクにルートURLを追加する方法
- 26. Excel、CSVセルからハイパーリンクを生成
- 27. C++でExcelセルの値を取得する方法
- 28. ワークシート全体に広がる複数のセルにハイパーリンクを追加する
- 29. Excel VBAでセルの内容からハイパーリンクを作成する
- 30. スペースを追加する方法Java apcheのハイパーリンクのアドレス