1.2【9159.com】 链接到图片,中进行PDF图层的操

作者: 编程  发布:2019-11-03

简介

本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点:

1.绘制图形

   1.1 绘制图形并添加文本到图形

   1.2 添加图片到图形

   1.3 设置图形阴影效果

  1. 提取图形中的文本、图片

  2. 设置图形的显示、隐藏

  3. 删除图形

   4.1删除指定图形

   4.2 删除所有图形

概述

为文档添加必要的批注可以给文档使用者提供重要的提示信息,下面的示例中,将介绍通过C#编程语言来给Excel表格中的指定单元格内容添加批注,此外,对于已有的批注,如果需要修改,我们也可以进行编辑或者删除批注。示例内容将包含以下主要内容:

1.插入批注

  1.1 插入文本

  1.2 插入图片

2.编辑批注

 2.1 修改批注内容

 2.1 设置批注可见性

3.删除批注

简介

超链接能够快速地将当前文本或图片链接到指定目标地址,在日常办公中给我们提供了极大的便利。本文将介绍在C#语言中如何通过免费版组件对Excel表格添加超链接,示例中将包含以下要点:

1.添加链接到网页(文本、图片)

   1.1 链接到文本

   1.2 链接到图片

2.添加链接到指定文档

3.添加链接到指定单元格

 

前言

通过添加图层,我们可以将文本、图片、表格、图形等元素精确定位于页面指定位置,将这些元素进行叠放、组合形成页面的最终效果。此外,对于页面中已有的图层我们也可以进行设置图层可见性、删除图层等操作。因此,在本篇文章中,将介绍如何在C#中进行PDF图层的操作。

所需工具

  • Free Spire.XLS for .NET 8.3 (社区版)

PS: 下载安装该类库后,注意在项目程序中添加引用Spire.Xls.dll文件(dll文件可在安装路径下的Bin文件夹中获取)

9159.com 1

注:Spire.xls能支持的图形种类很多,常见的Office Excel中的图形,这个类库也都能实现,

9159.com 2

工具

  •  Spire.XLS for .NET 8.0

 

提示:在进行代码操作之前,需下载安装Spire.Xls,并添加引用dll文件,添加如下using指令

using System;

using Spire.Xls;

using System.Drawing;

使用工具

  •  Free Spire.XLS for .NET 8.3(社区版)
  •  Visual Studio

PS:下载安装该组件,并添加引用该组件Spire.Xls.dll到项目程序即可(如下图),dll文件可在安装路径下的Bin文件夹中获取。

 9159.com 3

要点概括

1.添加图层

  • 线条
  • 图形
  • 图像
  • 字符串

2.设置图层隐藏、显示

  • 指定单个图层可见性
  • 设置所有图层可见性

3.删除图层

 

示例代码(供参考)

代码示例(供参考)

示例代码操作

工具使用

  • Spire.PDF for .NET 4.0

1. 绘制图形

【C#】

using System.Drawing;
using Spire.Xls;
using Spire.Xls.Core;

namespace Add_shapes_to_Excel
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建实例
            Workbook workbook = new Workbook();
            //获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            //添加“太阳”形状的图形,并填充颜色
            IPrstGeomShape Triangle = sheet.PrstGeomShapes.AddPrstGeomShape(2, 2, 170, 160, PrstGeomShapeType.Sun);
            Triangle.Fill.ForeColor = Color.Orange;
            Triangle.Fill.FillType = ShapeFillType.SolidColor;            
            Triangle.Text = "IT'S A SUNNY DAY";//添加文本

            //添加“禁止”标志的图形,并填充渐变颜色
            IPrstGeomShape heart = sheet.PrstGeomShapes.AddPrstGeomShape(2, 7, 140, 140, PrstGeomShapeType.NoSmoking);
            heart.Fill.ForeColor = Color.Red;
            heart.Fill.FillType = ShapeFillType.Gradient;

            //添加云朵形状的图形
            IPrstGeomShape Cloud = sheet.PrstGeomShapes.AddPrstGeomShape(15, 2, 160, 160, PrstGeomShapeType.Cloud);           
            //设置图形阴影效果
            Cloud.Shadow.Angle = 90;
            Cloud.Shadow.Distance = 10;
            Cloud.Shadow.Size = 100;
            Cloud.Shadow.Color = Color.SteelBlue;
            Cloud.Shadow.Blur = 30;
            Cloud.Shadow.Transparency = 1;
            Cloud.Shadow.HasCustomStyle = true;

            //添加五角星形状的图形,并加载图片来填充图形
            IPrstGeomShape cloud = sheet.PrstGeomShapes.AddPrstGeomShape(15, 7, 160, 160, PrstGeomShapeType.Star5);
            cloud.Fill.CustomPicture(Image.FromFile("sm.png"), "sm.png");
            cloud.Fill.FillType = ShapeFillType.Picture;

            //保存并打开文档
            workbook.SaveToFile("AddShapes.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("AddShapes.xlsx");
        }
    }
}

图形插入效果:

9159.com 4

1.插入Excel批注

【C#】

步骤1:实例化一个Workbook类实例并加载Excel文档

Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx");

步骤2:获取第一个工作表

Worksheet sheet = workbook.Worksheets[0];

步骤3:插入文本批注

string comment = "注意:n 责任人兼设备维护人";//设置批注文本
ExcelFont font = workbook.CreateFont();//设置批注字体格式
font.FontName = "Calibri";
font.Color = Color.Black;
font.IsBold = true;
CellRange range = sheet.Range["I3"];//添加批注到指定单元格
range.Comment.RichText.Text = comment;
range.Comment.Width = 200;
range.Comment.Height = 50;
range.Comment.RichText.SetFont(10, 10, font);

步骤4:插入图片批注

//加载图片,将图片插入到指定单元格的批注
Image image = Image.FromFile("logo.png");
sheet.Range["B2"].Comment.Fill.CustomPicture(image, "logo.png");
sheet.Range["B2"].Comment.Height = image.Height;
sheet.Range["B2"].Comment.Width = image.Width;

步骤5:保存文档

workbook.SaveToFile("AddComment.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("AddComment.xlsx");

批注插入效果(如下图):

9159.com 5

全部代码:

9159.com 69159.com 7

using System;
using Spire.Xls;
using System.Drawing;

namespace ModifyComment_XLS
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化一个Workbook类实例并加载Excel文档
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("test.xlsx");

            //获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            //设置批注文本
            string comment = "注意:n 责任人兼设备维护人";

            //设置批注字体
            ExcelFont font = workbook.CreateFont();
            font.FontName = "Calibri";
            font.Color = Color.Black;
            font.IsBold = true;

            //添加批注到指定单元格
            CellRange range = sheet.Range["I3"];
            range.Comment.RichText.Text = comment;
            range.Comment.Width = 200;
            range.Comment.Height = 50;
            range.Comment.RichText.SetFont(10, 10, font);

            //加载图片,将图片插入到指定单元格的批注
            Image image = Image.FromFile("logo.png");
            sheet.Range["B2"].Comment.Fill.CustomPicture(image, "logo.png");
            sheet.Range["B2"].Comment.Height = image.Height;
            sheet.Range["B2"].Comment.Width = image.Width;

            //保存并打开文档
            workbook.SaveToFile("AddComment.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("AddComment.xlsx");
        }
    }
}

View Code

 

1.添加链接到网页

(这里分两种情况,添加文本链接和图片链接。)

代码操作

2.提取图形中的文本和图片

【C#】

using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Text;
using Spire.Xls;
using Spire.Xls.Core;

namespace Extract_text_and_image_from_Excel_shape
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建实例,加载Excel工作表
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("test.xlsx");

            //获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            //提取指定形状中的文本内容,并将提取到的文本保存到指定文档
            IPrstGeomShape shape1 = sheet.PrstGeomShapes[0];
            string s = shape1.Text;
            StringBuilder sb = new StringBuilder();
            sb.AppendLine(s);
            File.WriteAllText("ExtractText.txt", sb.ToString());
            System.Diagnostics.Process.Start("ExtractText.txt");

            //提取指定图形中的图片,并保存图片到指定文件
            IPrstGeomShape shape2 = sheet.PrstGeomShapes[3];
            Image image = shape2.Fill.Picture;
            image.Save("ShapeImage.png", ImageFormat.Png);
            System.Diagnostics.Process.Start("ShapeImage.png");
        }
    }
}

提取结果:

9159.com 8

2. 修改、隐藏Excel批注

【C#】

步骤1:创建一个Workbook类对象,并加载Excel文档

Workbook workbook = new Workbook();
workbook.LoadFromFile("AddComment.xlsx");

步骤2:获取第一个工作表

Worksheet sheet = workbook.Worksheets[0];

步骤3:修改工作表中的第一个批注         

ExcelComment comment0 = workbook.Worksheets[0].Comments[0];
sheet.Comments[0].Text = "This is a new comment";

步骤4:设置批注可见性(隐藏、显示)

//设置指定批注可见(显示)
sheet.Comments[0].IsVisible = true;
//设置指定批注不可见(隐藏)
sheet.Comments[1].IsVisible = false;

步骤5:保存文档

workbook.SaveToFile("ModifyComment.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("ModifyComment.xlsx");

效果图:

9159.com 9

全部代码:

9159.com 109159.com 11

using System;
using Spire.Xls;
using System.Drawing;

namespace ModifyComment_XLS
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个Workbook类对象,并加载Excel文档
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("AddComment.xlsx");

            //获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            //修改工作表中的第一个批注          
            ExcelComment comment0 = workbook.Worksheets[0].Comments[0];
            sheet.Comments[0].Text = "This is a new comment";

            //设置指定批注不可见(隐藏)
            sheet.Comments[0].IsVisible = true;
            //设置指定批注可见(显示)
            sheet.Comments[1].IsVisible = false;

            //保存并打开文档
            workbook.SaveToFile("ModifyComment.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("ModifyComment.xlsx");
        }
    }
}

View Code

 

  1.1添加超链接到文本字符串

步骤1:创建Excel,获取工作表

Workbook wb = new Workbook();
Worksheet sheet = wb.Worksheets[0];

步骤2:获取单元格,添加文本并设置对齐方式

sheet.Range["A1"].Text = "绿色交通(Green Transpotation)";
sheet.Range["A1"].Style.VerticalAlignment = VerticalAlignType.Bottom;

步骤3:设置超链接到指定单元格

HyperLink UrlLink = sheet.HyperLinks.Add(sheet.Range["A1"]);
UrlLink.TextToDisplay = sheet.Range["A1"].Text;
UrlLink.Type = HyperLinkType.Url;
UrlLink.Address = "https://baike.baidu.com/item";

 

一、添加图层

我们通过使用Spire.PDF添加图层,支持添加线条、图像、字符串、饼图、椭圆形、矩形和多边形等多种类型的图层。

9159.com 12

【C#】

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace AddLayers_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //新建PDF文档,添加一页
            PdfDocument pdf = new PdfDocument();
            PdfPageBase page = pdf.Pages.Add();

            //添加一个线条图层,设置为可见
            PdfPageLayer layer = page.PageLayers.Add("Line", true);
            //在页面指定位置添加指定长度的线条,并设置线条颜色、粗细等格式
            layer.Graphics.DrawLine(new PdfPen(PdfBrushes.Blue, 1), new PointF(0, 0), new PointF(0, 200)); //这里可根据需要添加多条线条

            //向页面添加一个名为“椭圆”的图层,设置图层为可见
            layer = page.PageLayers.Add("椭圆", true);
            //设置图形颜色、线条粗细
            PdfPen pen = new PdfPen(Color.Yellow, 2.5f);
            //填充图形内部颜色,并在页面指定位置添加指定大小的椭圆形图形
            PdfBrush brush = new PdfSolidBrush(Color.White);
            layer.Graphics.DrawEllipse(pen, brush, 240, 200, 60,20);

            //添加一个图片图层,并命名图层为“Image Layer”
            layer = page.PageLayers.Add("Image Layer");
            //加载图片,在页面指定位置添加该图片作为图层并设置图像的大小
            layer.Graphics.DrawImage(PdfImage.FromFile("image.png"), 200, 230, 150, 185);

            //添加字符串类型的图层,并命名为“String Layer”
            layer = page.PageLayers.Add("String Layer");
            //向页面指定位置绘如文本,并设置字体、字号、颜色等格式
            layer.Graphics.DrawString("OH~IT'S SO GOOD! RIGHT? n LET'S GET STARTED!n COME ON, GUYS!", new PdfFont(PdfFontFamily.TimesRoman, 12), new PdfPen(PdfBrushes.MediumVioletRed, 1), 45, 250);

            //保存并打开文档
            pdf.SaveToFile("AddLayers.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("AddLayers.pdf");  
        }
    }
}

添加效果:

9159.com 13

3. 设置图形的隐藏、显示

【C#】

using Spire.Xls;

namespace HideShapes_XLS
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建实例,加载Excel文档
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("test.xlsx");

            //获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            //隐藏第3个图形
            sheet.PrstGeomShapes[2].Visible = false;
            //显示图形
            //sheet.PrstGeomShapes[1].Visible = true;

            //保存并打开文档
            workbook.SaveToFile("HideShape.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("HideShape.xlsx");
        }
    }
}

设置效果:

9159.com 14

3.删除Excel批注

【C#】

//实例化Wordbook类实例并加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("Comments.xlsx");

//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];

//删除工作表中的第2个批注
sheet.Comments[1].Remove();

//保存并打开文档
workbook.SaveToFile("RemoveComment.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("RemoveComment.xlsx");

 

 

以上全部为本篇文章的全部内容。

如需转载请注明出处。

<本文完>

 

1.2 链接到图片

步骤1:初始化一个string类,加载图片 

string picPath = @"C:UsersAdministratorDesktopimagesth.jpg";

步骤2:将图片添加到A1单元格,并设置超链接

ExcelPicture picture = sheet.Pictures.Add(1, 1, picPath);           
picture.SetHyperLink("https://en.wikipedia.org/wiki/Sustainable_transport", true);

步骤3:调整图片在单元格中的位置

sheet.Columns[0].ColumnWidth = 28;
sheet.Rows[0].RowHeight = 100;
picture.TopRowOffset = 30;

最后,保存文档

wb.SaveToFile("Hyperlink.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("Hyperlink.xlsx");

调试运行该项目程序后,生成文档,如下图所示:

9159.com 15

 全部代码:

9159.com 169159.com 17

using Spire.Xls;

namespace TextHyperlink_XLS
{
    class Program
    {
        static void Main(string[] args)
        {
            //添加文本超链接
            //创建一个Workbook类对象,获取第一个工作表
            Workbook wb = new Workbook();
            Worksheet sheet = wb.Worksheets[0];

            //获取第一个单元格添加文本并设置文本对齐方式
            sheet.Range["A1"].Text = "绿色交通(Green Transpotation)";
            sheet.Range["A1"].Style.VerticalAlignment = VerticalAlignType.Bottom;

            //创建一个超链接类对象,在A1单元格设置文本超链接
            HyperLink UrlLink = sheet.HyperLinks.Add(sheet.Range["A1"]);
            UrlLink.TextToDisplay = sheet.Range["A1"].Text;
            UrlLink.Type = HyperLinkType.Url;
            UrlLink.Address = "https://baike.baidu.com/item";

            //添加图片超链接。
            //初始化一个string类,加载图片 
            string picPath = @"C:UsersAdministratorDesktopimagesth.jpg";
            //将图片添加到A1单元格,并设置超链接
            ExcelPicture picture = sheet.Pictures.Add(1, 1, picPath);           
            picture.SetHyperLink("https://en.wikipedia.org/wiki/Sustainable_transport", true);
            //设置图片在单元格中的位置
            sheet.Columns[0].ColumnWidth = 28;
            sheet.Rows[0].RowHeight = 100;
            picture.TopRowOffset = 30;

            //保存并打开文件
            wb.SaveToFile("Hyperlink.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("Hyperlink.xlsx");
        }
    }
}

View Code

 

二、设置图层隐藏、显示

9159.com ,4. 删除Excel图形

【C#】

using Spire.Xls;

namespace RemoveShapes_XLS
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化Workbook类对象,加载Excel文件
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("test.xlsx");

            //获取第一个工作表
            Worksheet sheet = workbook.Worksheets[0];

            //删除第一个图形
            sheet.PrstGeomShapes[0].Remove();

            //删除所有图形
            //for (int i = sheet.PrstGeomShapes.Count-1; i >= 0; i--)
            //{
            //    sheet.PrstGeomShapes[i].Remove();
            //}

            //保存并打开文件
            workbook.SaveToFile("DeleteShape.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("DeleteShape.xlsx");
        }
    }
}

图形删除效果:

9159.com 18

以上是关于“C#操作Excel中图形”的介绍,如需转载,请注明出处。

2.添加链接到文档

【C#】

//实例化一个Workbook类并加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"C:UsersAdministratorDesktopSample.xlsx");
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];

//设置超链接到指定单元格
CellRange range = sheet.Range["E2"];
HyperLink FileLink = sheet.HyperLinks.Add(range);
FileLink.Type = HyperLinkType.File;
FileLink.TextToDisplay = sheet.Range["E2"].Text;
FileLink.Address = @"C:UsersAdministratorDesktoptest.docx";

//保存并打开文档
workbook.SaveToFile("FileLink.xlsx");
System.Diagnostics.Process.Start("FileLink.xlsx");

效果示例:

9159.com 19

(一)设置单个图层的隐藏、显示

 【C#】

using Spire.Pdf;
using Spire.Pdf.Graphics.Layer;

namespace HideOrShowLayer_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
               //实例化PdfDocument类,加载文档
                PdfDocument doc = new PdfDocument("AddLayers.pdf");

                //设置图层可见属性为Off,通过索引值来隐藏第3个图层
                //doc.Layers[2].Visibility = PdfVisibility.Off;

                //设置图层可见属性为Off,通过图层名称来隐藏图层
                doc.Layers["String Layer"].Visibility = PdfVisibility.Off;

                //保存并打开文档
                doc.SaveToFile("HideLayer0.pdf");
                System.Diagnostics.Process.Start("HideLayer0.pdf");

        }
    }
}

测试结果:

1.通过“索引值”来隐藏图层的效果

9159.com 20

2.通过图层名称来隐藏图层的效果

9159.com 21

3.添加链接到指定单元格

【C#】

//新建一个Excel类对象,加载Excel文档,获取第一个工作表
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"C:UsersAdministratorDesktopSample.xlsx");
Worksheet sheet = workbook.Worksheets[0];

//获取指定单元格,链接至指定文档中的特定单元格
CellRange range = sheet.Range["E2"];
HyperLink WbLink = sheet.HyperLinks.Add(range);
WbLink.Type = HyperLinkType.Workbook;
WbLink.TextToDisplay = "已清算";
WbLink.Address = "A账目明细!A1";

//保存并打开文档
workbook.SaveToFile("LinktoCell.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("LinktoCell.xlsx");

效果展示:

9159.com 22

(二)设置全部图层的隐藏、显示

【C#】

using System;
using Spire.Pdf;
using Spire.Pdf.Graphics.Layer;

namespace ShowLayer_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建PdfDocument类对象,加载pdf测试文档
            PdfDocument doc = new PdfDocument("AddLayers.pdf");

            //遍历文档中的所有图层,
            for (int i = 0; i < doc.Layers.Count; i++)
            {
                //显示所有图层
                //doc.Layers[i].Visibility = PdfVisibility.On;

                //隐藏所有图层
                doc.Layers[i].Visibility = PdfVisibility.Off;
            }
                //保存并打开文档
                doc.SaveToFile("HideAllLayers.pdf");
                System.Diagnostics.Process.Start("HideAllLayers.pdf");
        }
    }
}

测试结果:

9159.com 23

4.添加链接Unc路径

【C#】

//创建一个Workbook类对象,加载Excel文档,获取第二个工作表
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"C:UsersAdministratorDesktopSample.xlsx");
Worksheet sheet = workbook.Worksheets[1];

//添加Unc链接至A1单元格,设置连接类型为Unc,添加显示文本及链接路径
CellRange range = sheet.Range["A1"];
HyperLink UncLink = sheet.HyperLinks.Add(range);
UncLink.Type = HyperLinkType.Unc;
UncLink.TextToDisplay = "地址";
UncLink.Address = "\192.168.1.118";

//保存文档
workbook.SaveToFile("LinktoUnc.xls");

效果示例:

9159.com 24

以上是关于添加Excel超链接的全部内容。

<本文完>

如需转载,请注明出处。

三、删除图层

 【C#】

using Spire.Pdf;

namespace DeleteLayer_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个PdfDocument类对象,加载包含多个图层的PDF文档
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("AddLayers.pdf");

            //调用方法RemoveLayer()删除名为“Line”的图层
            doc.Layers.RemoveLayer(("Line"));

            //保存并打开文档
            doc.SaveToFile("DeleteLayer.pdf", FileFormat.PDF);
            System.Diagnostics.Process.Start("DeleteLayer.pdf");
        }
    }
}

测试结果:

9159.com 25

阅读结束!

如需转载,请注明出处!

本文由9159.com发布于编程,转载请注明出处:   1.2【9159.com】 链接到图片,中进行PDF图层的操

关键词: