ExcelToolKit.XlsCell.SetHyperLink C# (CSharp) Method

SetHyperLink() public method

public SetHyperLink ( string url ) : void
url string
return void
        public void SetHyperLink(string url){
            url = FilteUrl(url);

            m_isHyperLink=true;
            if(url=="_blank"){
                var text=m_object.ToString();
                var regex = @"\[.*\]\((.*)\)";
                var m = Regex.Match(text,regex);
                if(m.Captures.Count>0){
                    m_hyperLink=m.Groups[1].Value;
                    prepareMarkDown=text;
                }else{
                    regex=@"https?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
                    m = Regex.Match(text, regex);
                    if(m.Captures.Count>0){
                        m_hyperLink = m.Groups[0].Value;
                    }else{
                        m_isHyperLink = false;
                    }
                }
            }else{
                var text=m_object.ToString();
                var regex = string.Format(@"\[.*\]\({0}\)",url);
                var m = Regex.Match(text,regex);
                if(m.Captures.Count>0){
                    m_hyperLink=url;
                    prepareMarkDown=text;
                }else{
                    m_hyperLink = url;
                }
            }
        }

Usage Example

Example #1
0
        private bool ReadHyperLinks(XlsxWorksheet sheet, DataTable table)
        {
            // ReadTo HyperLinks Node
            if (m_xmlReader == null)
            {
                //Console.WriteLine("m_xmlReader is null");
                return(false);
            }

            //Console.WriteLine(m_xmlReader.Depth.ToString());

            m_xmlReader.ReadToFollowing(XlsxWorksheet.N_hyperlinks);
            if (m_xmlReader.IsEmptyElement)
            {
                //Console.WriteLine("not find hyperlink");
                return(false);
            }

            // Read Realtionship Table
            //Console.WriteLine("sheetrel:{0}", sheet.Path);
            var sheetRelStream = m_zipWorker.GetWorksheetRelsStream(sheet.Path);
            var hyperDict      = new Dictionary <string, string>();

            if (sheetRelStream != null)
            {
                using (var reader = XmlReader.Create(sheetRelStream))
                {
                    while (reader.Read())
                    {
                        if (reader.NodeType == XmlNodeType.Element && reader.LocalName == XlsxWorkbook.N_rel)
                        {
                            string rid = reader.GetAttribute(XlsxWorkbook.A_id);
                            hyperDict[rid] = reader.GetAttribute(XlsxWorkbook.A_target);
                        }
                    }
                    sheetRelStream.Close();
                }
            }


            // Read All HyperLink Node
            while (m_xmlReader.Read())
            {
                if (m_xmlReader.NodeType != XmlNodeType.Element)
                {
                    break;
                }
                if (m_xmlReader.LocalName != XlsxWorksheet.N_hyperlink)
                {
                    break;
                }
                string aref    = m_xmlReader.GetAttribute(XlsxWorksheet.A_ref);
                string display = m_xmlReader.GetAttribute(XlsxWorksheet.A_display);
                string rid     = m_xmlReader.GetAttribute(XlsxWorksheet.A_rid);
                ////Console.WriteLine("{0}:{1}", aref.Substring(1), display);

                //Console.WriteLine("hyperlink:{0}",hyperDict[rid]);
                var hyperlink = display;
                if (hyperDict.ContainsKey(rid))
                {
                    hyperlink = hyperDict[rid];
                }

                int col = -1;
                int row = -1;
                XlsxDimension.XlsxDim(aref, out col, out row);
                //Console.WriteLine("{0}:[{1},{2}]",aref, row, col);
                if (col >= 1 && row >= 1)
                {
                    row = row - 1;
                    col = col - 1;
                    if (row == 0 && m_isFirstRowAsColumnNames)
                    {
                        // TODO(fanfeilong):
                        var     value = table.Columns[col].ColumnName;
                        XlsCell cell  = new XlsCell(value);
                        cell.SetHyperLink(hyperlink);
                        table.Columns[col].DefaultValue = cell;
                    }
                    else
                    {
                        var value = table.Rows[row][col];
                        var cell  = new XlsCell(value);
                        cell.SetHyperLink(hyperlink);
                        //Console.WriteLine(cell.MarkDownText);
                        table.Rows[row][col] = cell;
                    }
                }
            }

            // Close
            m_xmlReader.Close();
            if (m_sheetStream != null)
            {
                m_sheetStream.Close();
            }

            return(true);
        }
All Usage Examples Of ExcelToolKit.XlsCell::SetHyperLink