谁能告诉我如何在 Excel(2007 或更高版本)中使用 .NET 中的 Office Interop(c#)将超链接从一张表中的单元格添加到另一张表中的单元格
例如:从 Sheet1 单元格 A1 到 Sheet2 单元格 B10 的超链接
谁能告诉我如何在 Excel(2007 或更高版本)中使用 .NET 中的 Office Interop(c#)将超链接从一张表中的单元格添加到另一张表中的单元格
例如:从 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 中的第一项。(不管那是什么……)
希望下面的一篇对你有所帮助。
xlNewSheet.Hyperlinks.Add(xlWorkRange, string.Empty, "'Detailed Testcase Summary'!A1", "Click Here", "Please click me to go to Detailed Test case Summary Result");
@Mike Rosenblums 答案翻译成德尔福也可以:
uses
Excel2000;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
AExcelApplication: ExcelApplication;
AExcelWorkSheet: ExcelWorkSheet;
ARange: Range;
hyperlinkTargetAddress:String;
begin
AExcelApplication := CoExcelApplication.Create;
AExcelApplication.Visible[0] := true;
AExcelApplication.Workbooks.Add('',0);
AExcelApplication.Worksheets.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);
AExcelApplication.Worksheets.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);
AExcelWorkSheet := AExcelApplication.Worksheets.Item[1] as ExcelWorkSheet;
ARange := AExcelWorkSheet.Range['A1','A1'];
hyperlinkTargetAddress := 'Sheet2!A1';
AExcelWorkSheet.Hyperlinks.Add(
ARange,
'',
hyperlinkTargetAddress,
'Screen Tip Text',
'Hyperlink Title1'
);
ARange := AExcelWorkSheet.Range['A2','A2'];
AExcelWorkSheet.Hyperlinks.Add(
ARange,
'',
'Sheet1!A1',
'Screen Tip Text',
'Hyperlink Title2'
);
end;