.NET(c#)のOffice Interopを使用して、あるシートのセルから別のシートのセルにExcel(2007以降)でハイパーリンクを追加する方法を教えてもらえますか?
例:Sheet1セルA1からSheet2セルB10へのハイパーリンク
.NET(c#)のOffice Interopを使用して、あるシートのセルから別のシートのセルにExcel(2007以降)でハイパーリンクを追加する方法を教えてもらえますか?
例:Sheet1セルA1からSheet2セルB10へのハイパーリンク
ここで使用するのは、Hyperlinks.Addメソッドです。
次のようなコードで呼び出すことができます。
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
Excel.Range rangeToHoldHyperlink = worksheet.get_Range("A1", Type.Missing);
string hyperlinkTargetAddress = "Sheet2!A1";
worksheet.Hyperlinks.Add(
rangeToHoldHyperlink,
string.Empty,
hyperlinkTargetAddress,
"Screen Tip Text",
"Hyperlink Title");
テストできる完全な自動化の例を次に示します。
void AutomateExcel()
{
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbook workbook = excelApp.Workbooks.Add(Type.Missing);
workbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
workbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
Excel.Range rangeToHoldHyperlink = worksheet.get_Range("A1", Type.Missing);
string hyperlinkTargetAddress = "Sheet2!A1";
worksheet.Hyperlinks.Add(
rangeToHoldHyperlink,
string.Empty,
hyperlinkTargetAddress,
"Screen Tip Text",
"Hyperlink Title");
MessageBox.Show("Ready to clean up?");
// Cleanup:
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
Marshal.FinalReleaseComObject(range);
Marshal.FinalReleaseComObject(worksheet);
workbook.Close(false, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(workbook);
excelApp.Quit();
Marshal.FinalReleaseComObject(excelApp);
}
お役に立てれば!
マイク
私はそうします:
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(System.Reflection.Missing.Value);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
Excel.Hyperlink link =
(Excel.Hyperlink)
xlWorkSheet.Hyperlinks.Add(xlWorkSheet.get_Range("L500", Type.Missing), "#Sheet1!B1", Type.Missing,
"Go top",
"UP");
xlWorkSheet.Hyperlinks.Add(xlWorkSheet.get_Range("C5", Type.Missing), "www.google.com", Type.Missing, "Click me to go to Google ","Google.com");
xlApp.Visible = true;
ブック内のセルにつながるリンクに記号#を挿入することが重要です。この記号が挿入されていない場合、リンクは壊れています。
私はこの決定をロシア語の記事で説明しました。例はここにあります
画像へのリンクを追加するには (既にシートに挿入されています):
Hyperlinks hyperlinks = ws.Hyperlinks;
Hyperlink hyperlink = hyperlinks.Add(picture.ShapeRange.Item(1), "http://stackoverflow.com");
写真に直接追加するのではなく、ShapeRange の最初の項目です。(それが何であれ...)
以下の1つがあなたを助けることを願っています。
xlNewSheet.Hyperlinks.Add(xlWorkRange, string.Empty, "'Detailed Testcase Summary'!A1", "Click Here", "Please click me to go to Detailed Test case Summary Result");