2009-08-26 18 views
9

क्या कोई मुझे बता सकता है कि हम एक्सेल (2007 या बाद में) में से एक हाइपरलिंक कैसे जोड़ सकते हैं, एक शीट में एक सेल में Office Interop का उपयोग करके किसी अन्य शीट में सेल नेट (ग #)एक्सेल में हाइपरलिंक जोड़ना [2007] सी # में - एक्सेल के भीतर यह स्वयं

उदाहरण के लिए में: Sheet2 सेल B10 के लिए पत्रक 1 सेल A1 से एक हाइपरलिंक

उत्तर

7

Hyperlinks.Add विधि क्या तुम यहाँ का उपयोग करना चाहते है।

आप कोड के साथ कॉल कर सकते हैं कुछ इस तरह दिखता है कि:

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.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"); 

एक पूर्ण स्वचालन उदाहरण है कि आप कर सकते हैं परीक्षण है!

माइक

+0

मैं subaddress के बजाय पता पैरामीटर का उपयोग कर रहा था ... पहला काम नहीं करता है। – TimothyP

+0

मैं जिस मुख्य बिंदु को याद कर रहा था वह यह था कि हाइपरलिंक द्वारा इंगित सेल उपद्रव में जाता है। मैं इसे पते में डालने का प्रयास कर रहा था –

2

मैं ऐसा करना:

 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; 

इसके बाद यह लिंक है कि, पुस्तक के अंदर एक सेल की ओर जाता है, तो इस प्रतीक डाला जाता है में प्रतीक # सम्मिलित करने के लिए महत्वपूर्ण है लिंक टूटा हुआ है।

मैं रूसी भाषा में एक लेख में इस निर्णय का वर्णन किया, एक उदाहरण पाया जा सकता है here

0

आशा नीचे एक तुम्हारी मदद करेगा।

xlNewSheet.Hyperlinks.Add(xlWorkRange, string.Empty, "'Detailed Testcase Summary'!A1", "Click Here", "Please click me to go to Detailed Test case Summary Result");  
0

एक तस्वीर (पहले से ही चादर में डाला) के लिए एक लिंक जोड़ने के लिए:

Hyperlinks hyperlinks = ws.Hyperlinks; 
Hyperlink hyperlink = hyperlinks.Add(picture.ShapeRange.Item(1), "http://stackoverflow.com"); 

आप इसे सीधे चित्र को जोड़ने नहीं कर रहे हैं, लेकिन यह में 1 आइटम ShapeRange है। (जो कुछ भी है ...)

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^