コード例 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
 /// </summary>
 /// <param name="type">The type of hyperlink to Create.</param>
 public HSSFHyperlink(int type)
 {
     this.link_type = type;
     record = new HyperlinkRecord();
     switch (type)
     {
         case LINK_URL:
         case LINK_EMAIL:
             record.NewUrlLink();
             break;
         case LINK_FILE:
             record.NewFileLink();
             break;
         case LINK_DOCUMENT:
             record.NewDocumentLink();
             break;
     }
 }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
 /// </summary>
 /// <param name="type">The type of hyperlink to Create.</param>
 public HSSFHyperlink(HyperlinkType type)
 {
     this.link_type = (int)type;
     record = new HyperlinkRecord();
     switch (type)
     {
         case HyperlinkType.Url:
         case HyperlinkType.Email:
             record.CreateUrlLink();
             break;
         case HyperlinkType.File:
             record.CreateFileLink();
             break;
         case HyperlinkType.Document:
             record.CreateDocumentLink();
             break;
     }
 }
コード例 #3
0
ファイル: HSSFHyperlink.cs プロジェクト: WPG/npoi
 /// <summary>
 /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
 /// </summary>
 /// <param name="type">The type of hyperlink to Create.</param>
 public HSSFHyperlink(HyperlinkType type)
 {
     this.link_type = (int)type;
     record = new HyperlinkRecord();
     switch (type)
     {
         case HyperlinkType.URL:
         case HyperlinkType.EMAIL:
             record.CreateUrlLink();
             break;
         case HyperlinkType.FILE:
             record.CreateFileLink();
             break;
         case HyperlinkType.DOCUMENT:
             record.CreateDocumentLink();
             break;
     }
 }
コード例 #4
0
ファイル: HyperlinkRecord.cs プロジェクト: zzy092/npoi
        public override Object Clone()
        {
            HyperlinkRecord rec = new HyperlinkRecord();

            rec._range = _range.Copy();
            rec._guid  = _guid;

            rec._linkOpts          = _linkOpts;
            rec._fileOpts          = _fileOpts;
            rec._label             = _label;
            rec._address           = _address;
            rec._moniker           = _moniker;
            rec._shortFilename     = _shortFilename;
            rec._targetFrame       = _targetFrame;
            rec._textMark          = _textMark;
            rec._uninterpretedTail = _uninterpretedTail;
            return(rec);
        }
コード例 #5
0
        public void TestCreateDocumentRecord()
        {
            HyperlinkRecord link = new HyperlinkRecord();
            link.CreateDocumentLink();
            link.FirstRow = 3;
            link.LastRow = 3;
            link.Label = "place";
            link.TextMark = "Sheet1!A1";

            byte[] tmp = link.Serialize();
            byte[] ser = new byte[tmp.Length - 4];
            Array.Copy(tmp, 4, ser, 0, ser.Length);
            //Assert.AreEqual(data4.Length, ser.Length);
            Assert.IsTrue(Arrays.Equals(data4, ser));
        }
コード例 #6
0
        public void TestCreateFileRecord()
        {
            HyperlinkRecord link = new HyperlinkRecord();
            link.CreateFileLink();
            link.FirstRow = 0;
            link.LastRow = 0;
            link.Label = "file";
            link.ShortFilename = "link1.xls";

            byte[] tmp = link.Serialize();
            byte[] ser = new byte[tmp.Length - 4];
            Array.Copy(tmp, 4, ser, 0, ser.Length);
            Assert.AreEqual(data2.Length, ser.Length);
            Assert.IsTrue(Arrays.Equals(data2, ser));
        }
コード例 #7
0
        public void TestCreateURLRecord()
        {
            HyperlinkRecord link = new HyperlinkRecord();
            link.CreateUrlLink();
            link.FirstRow = 2;
            link.LastRow = 2;
            link.Label = "My Link";
            link.Address = "http://www.lakings.com/";

            byte[] tmp = link.Serialize();
            byte[] ser = new byte[tmp.Length - 4];
            Array.Copy(tmp, 4, ser, 0, ser.Length);
            Assert.AreEqual(data1.Length, ser.Length);
            Assert.IsTrue(Arrays.Equals(data1, ser));
        }
コード例 #8
0
 private void Serialize(byte[] data)
 {
     RecordInputStream is1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data);
     HyperlinkRecord link = new HyperlinkRecord(is1);
     byte[] bytes1 = link.Serialize();
     is1 = TestcaseRecordInputStream.Create(bytes1);
     link = new HyperlinkRecord(is1);
     byte[] bytes2 = link.Serialize();
     Assert.AreEqual(bytes1.Length, bytes2.Length);
     Assert.IsTrue(Arrays.Equals(bytes1, bytes2));
 }
コード例 #9
0
        public void TestReserializeUNC()
        {

            RecordInputStream in1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, dataUNC);
            HyperlinkRecord hr = new HyperlinkRecord(in1);
            byte[] ser = hr.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(HyperlinkRecord.sid, dataUNC, ser);
            try
            {
                hr.ToString();
            }
            catch (NullReferenceException)
            {
                throw new AssertionException("Identified bug with option URL and UNC set at same time");
            }
        }
コード例 #10
0
 public void TestReserializeTargetFrame()
 {
     RecordInputStream in1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, dataTargetFrame);
     HyperlinkRecord hr = new HyperlinkRecord(in1);
     byte[] ser = hr.Serialize();
     TestcaseRecordInputStream.ConfirmRecordEncoding(HyperlinkRecord.sid, dataTargetFrame, ser);
 }
コード例 #11
0
        public void TestReadURLLink()
        {
            RecordInputStream is1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data1);
            HyperlinkRecord link = new HyperlinkRecord(is1);
            Assert.AreEqual(2, link.FirstRow);
            Assert.AreEqual(2, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            ConfirmGUID(HyperlinkRecord.URL_MONIKER, link.Moniker);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_ABS | HyperlinkRecord.HLINK_LABEL;
            Assert.AreEqual(0x17, opts);
            Assert.AreEqual(opts, link.LinkOptions);
            Assert.AreEqual(0, link.FileOptions);

            Assert.AreEqual("My Link", link.Label);
            Assert.AreEqual("http://www.lakings.com/", link.Address);
        }
コード例 #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HSSFHyperlink"/> class.
 /// </summary>
 /// <param name="record">The record.</param>
 public HSSFHyperlink(HyperlinkRecord record)
 {
     this.record = record;
 }
コード例 #13
0
ファイル: HyperlinkRecord.cs プロジェクト: babywzazy/Server
        public override Object Clone()
        {
            HyperlinkRecord rec = new HyperlinkRecord();
            rec._range = _range.Copy();
            rec._guid = _guid;

            rec._linkOpts = _linkOpts;
            rec._fileOpts = _fileOpts;
            rec._label = _label;
            rec._address = _address;
            rec._moniker = _moniker;
            rec._shortFilename = _shortFilename;
            rec._targetFrame = _targetFrame;
            rec._textMark = _textMark;
            rec._uninterpretedTail = _uninterpretedTail;
            return rec;
        }
コード例 #14
0
        public void TestCreateEmailtRecord()
        {
            HyperlinkRecord link = new HyperlinkRecord();
            link.CreateUrlLink();
            link.FirstRow = 1;
            link.LastRow = 1;
            link.Label = "email";
            link.Address = "mailto:[email protected]?subject=Hello,%20Ebgans!";

            byte[] tmp = link.Serialize();
            byte[] ser = new byte[tmp.Length - 4];
            Array.Copy(tmp, 4, ser, 0, ser.Length);
            Assert.AreEqual(data3.Length, ser.Length);
            Assert.IsTrue(Arrays.Equals(data3, ser));
        }
コード例 #15
0
        public void TestReadFileLink()
        {
            RecordInputStream is1 = TestcaseRecordInputStream.Create((short)HyperlinkRecord.sid, data2);
            HyperlinkRecord link = new HyperlinkRecord(is1);
            Assert.AreEqual(0, link.FirstRow);
            Assert.AreEqual(0, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            ConfirmGUID(HyperlinkRecord.FILE_MONIKER, link.Moniker);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_LABEL;
            Assert.AreEqual(0x15, opts);
            Assert.AreEqual(opts, link.LinkOptions);

            Assert.AreEqual("file", link.Label);
            Assert.AreEqual("link1.xls", link.ShortFilename);
        }
コード例 #16
0
        public void TestClone()
        {
            byte[][] data = { data1, data2, data3, data4 };
            for (int i = 0; i < data.Length; i++)
            {
                RecordInputStream is1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data[i]);
                HyperlinkRecord link = new HyperlinkRecord(is1);
                HyperlinkRecord clone = (HyperlinkRecord)link.Clone();
                Assert.IsTrue(Arrays.Equals(link.Serialize(), clone.Serialize()));
            }

        }
コード例 #17
0
        public void TestReadEmailLink()
        {
            RecordInputStream is1 = TestcaseRecordInputStream.Create((short)HyperlinkRecord.sid, data3);
            HyperlinkRecord link = new HyperlinkRecord(is1);
            Assert.AreEqual(1, link.FirstRow);
            Assert.AreEqual(1, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            ConfirmGUID(HyperlinkRecord.URL_MONIKER, link.Moniker);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_ABS | HyperlinkRecord.HLINK_LABEL;
            Assert.AreEqual(0x17, opts);
            Assert.AreEqual(opts, link.LinkOptions);

            Assert.AreEqual("email", link.Label);
            Assert.AreEqual("mailto:[email protected]?subject=Hello,%20Ebgans!", link.Address);
        }
コード例 #18
0
        public void TestReserializeLinkToWorkbook()
        {

            RecordInputStream in1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, dataLinkToWorkbook);
            HyperlinkRecord hr = new HyperlinkRecord(in1);
            byte[] ser = hr.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(HyperlinkRecord.sid, dataLinkToWorkbook, ser);
            if ("YEARFR~1.XLS".Equals(hr.Address))
            {
                throw new AssertionException("Identified bug in reading workbook link");
            }
            Assert.AreEqual("yearfracExamples.xls", hr.Address);
        }
コード例 #19
0
        public void TestReadDocumentLink()
        {
            RecordInputStream is1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data4);
            HyperlinkRecord link = new HyperlinkRecord(is1);
            Assert.AreEqual(3, link.FirstRow);
            Assert.AreEqual(3, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_LABEL | HyperlinkRecord.HLINK_PLACE;
            Assert.AreEqual(0x1C, opts);
            Assert.AreEqual(opts, link.LinkOptions);

            Assert.AreEqual("place", link.Label);
            Assert.AreEqual("Sheet1!A1", link.TextMark);
            Assert.AreEqual("Sheet1!A1", link.Address);
        }
コード例 #20
0
        public void Test47498()
        {
            RecordInputStream is1 = TestcaseRecordInputStream.Create(HyperlinkRecord.sid, data_47498);
            HyperlinkRecord link = new HyperlinkRecord(is1);
            Assert.AreEqual(2, link.FirstRow);
            Assert.AreEqual(2, link.LastRow);
            Assert.AreEqual(0, link.FirstColumn);
            Assert.AreEqual(0, link.LastColumn);
            ConfirmGUID(HyperlinkRecord.STD_MONIKER, link.Guid);
            ConfirmGUID(HyperlinkRecord.URL_MONIKER, link.Moniker);
            Assert.AreEqual(2, link.LabelOptions);
            int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_LABEL;
            Assert.AreEqual(opts, link.LinkOptions);
            Assert.AreEqual(0, link.FileOptions);

            Assert.AreEqual("PDF", link.Label);
            Assert.AreEqual("testfolder/test.PDF", link.Address);

            byte[] ser = link.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(HyperlinkRecord.sid, data_47498, ser);
        }
コード例 #21
0
 public override Object Clone()
 {
     HyperlinkRecord rec = new HyperlinkRecord();
     rec.rwFirst = rwFirst;
     rec.rwLast = rwLast;
     rec.colFirst = colFirst;
     rec.colLast = colLast;
     rec.guid = guid;
     rec.label_opts = label_opts;
     rec.link_opts = link_opts;
     rec.file_opts = file_opts;
     rec.label = label;
     rec.Address = Address;
     rec.moniker = moniker;
     rec.tail = tail;
     return rec;
 }