1、安装所需包,使用nuget安装所需包

1.1、Spire.Xls

1.2、iTextSharp.text.pdf

2、Spire.Xls介绍

将Excel转换为PDF是一个很常用的功能,常见的转换场景有以下三种:

2.1、转换整个Excel文档到PDF
 2.2、转换Excel文档的某一个工作表到PDF
 2.3、转换Excel文档的某一个工作表的某一部分单元格到PDF

 ps:Spire是收费,所以导出excel有如下字样。

解决方法:使用空白图片对字样覆盖操作即可。

//方法一
Workbook workbook = new Workbook();
workbook.LoadFromFile("示例.xlsx");
workbook.SaveToFile("输出.pdf", FileFormat.PDF); //方法二、对excel某一个sheet生成pdf
Workbook workbook = new Workbook();
workbook.LoadFromFile("示例.xlsx");
Worksheet sheet = workbook.Worksheets[];
sheet.SaveToPdf("输出1.pdf");

3、使用空白图片对字样pdf进行覆盖操作

 private void Excel2PDF(string resourcePdfPath)
{ Workbook workbook = new Workbook();
//加载excel文件
workbook.LoadFromFile("excel路径");
Worksheet sheet = workbook.Worksheets[];
//使用spire生成pdf
sheet.SaveToPdf(resourcePdfPath);
stream.Close();
}
//利用空白图片去掉上图红字字样
private void AddImgToPDF(string resourcePdfPath,string savePdfPath ,string blackImgPath)
{
//加载有字样的pdf模板
PdfReader reader = new PdfReader(resourcePdfPath);
PdfStamper pdfStamper = new PdfStamper(reader, new FileStream(savePdfPath, FileMode.Create));
int iPageNum = reader.NumberOfPages; //pdf页面数
AcroFields pdfFormFields = pdfStamper.AcroFields;
string imagePath = blackImgPath;
//加载空白图片
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imagePath);
//设置空白图片位置
img.SetAbsolutePosition(, );
//对pdf每页进行空白填充
for (int j = ; j <= iPageNum; j++)
{
PdfContentByte over = pdfStamper.GetOverContent(j);
over.AddImage(img);
}
pdfStamper.Close();
reader.Close();
} private string ExportPDF(string pdfName)
{
string tempDirPath = Server.MapPath("/Templates/Excel/");
string tempPdfPath = tempDirPath + DateTime.Now.ToFileTime() + ".pdf";
Excel2PDF(tempPdfPath);
string blackImgPath = tempDirPath + "black.png";
string savePdfPath = tempDirPath + pdfName + ".pdf";
AddImgToPDF(tempPdfPath, savePdfPath, blackImgPath);
FileInfo file = new FileInfo(tempPdfPath);
file.Delete();
return savePdfPath;
}

C# 将Excel导出PDF的更多相关文章

  1. 导出excel和PDF小结 vba

    最近接触了一个关于Access工具的项目,所以整理下需要使用的方法. 功能要求简介: 1.将数据表中的数据导出到excel和PDF 2.并根据某个字段名称分sheet输出. 3.无模板方式 方案简介: ...

  2. java操作office和pdf文件页面列表导出cvs,excel、pdf报表.

    在平常的开发中我们常常遇到不仅仅只是导出excel报表的情况.有时候也需要导出pdf或者CSV报 表.其实原理都差不多.刚开始本来不打算也这篇博客介绍这个的.感觉这篇博客和前面的博客有点雷同.原理基本 ...

  3. Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,htm

    Ireport 报表导出 Poi + ireport 导出pdf, doc ,excel ,html 格式 下面是报表导出工具类reportExportUtils 需要导出以上格式的报表 只需要调用本 ...

  4. Ionic2+WebApi 导出Excel转Pdf文件。

    步骤: 1.首先在WebApi中先把excel生成好. 2.把excel转成Pdf,并返回下载的链接. 3.Ionic2的页面做好下载的接口. 嗯~思路很清晰,那么下面就来详细的操作吧. 以下是H5的 ...

  5. jquery插件导出excel和pdf(解决中文乱码问题)

    参考文件:http://jackyrong.iteye.com/blog/2169683 https://my.oschina.net/aruan/blog/418980 https://segmen ...

  6. 个人永久性免费-Excel催化剂功能第50波-批量打印、导出PDF、双面打印功能

    在倡导无纸化办公的今天,是否打印是一个碍眼的功能呢,某些时候的确是,但对于数据的留存,在现在鼓吹区块链技术的今天,仍然不失它的核心价值,数据报表.单据打印出来留存,仍然是一种不可或缺的数据存档和防篡改 ...

  7. Vue框架下实现导入导出Excel、导出PDF

    项目需求:开发一套基于Vue框架的工程档案管理系统,用于工程项目资料的填写.编辑和归档,经调研需支持如下功能: Excel报表的导入.导出 PDF文件的导出 打印表格 经过技术选型,项目组一致决定通过 ...

  8. 二十六、【开源框架】EFW框架Winform前端开发之Grid++Report报表、条形码、Excel导出、图表控件

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan ...

  9. (Excel导出失败)检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失

    在DCOM 中不存在WORD.EXCEL等OFFICE组件   最近在做一个关于office转存PDF的Web项目.开发过程一切顺利. 起初在网上找到一些Word,PPT转PDF的代码.很好用.一切顺 ...

随机推荐

  1. 啃OBS源码-界面汉字

    插件对应该字体目录:D:\project\vs\obs\obsstudio21.12\build\rundir\Debug\data\obs-plugins obs对应该字体目录:D:\project ...

  2. C#中将xml文件反序列化为实例时采用基类还是派生类的问题

    基类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

  3. Android中Activity的启动模式(LaunchMode)和使用场景

    一.为什么需要启动模式在Android开发中,我们都知道,在默认的情况下,如果我们启动的是同一个Activity的话,系统会创建多个实例并把它们一一放入任务栈中.当我们点击返回(back)键,这些Ac ...

  4. nfs高可用

      一.简介 NFS是单点的,如果一个节点出现问题,那使用它挂载服务的都将出现问题.所以需要高可用,挂掉一台不影响.采用keepalived+rsync+inotify-tools 环境: ubunt ...

  5. 有无关键字new的区别

    function Person(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; } const ...

  6. ChrW函数

    ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同.相反的函数是 ASCW() 在access当中用到了

  7. linux查看哪个进程占用磁盘IO

    方法一: $ iotop -oP 命令的含义:只显示有I/O行为的进程 测试结果: 方法二: $ pidstat -d 1 命令的含义:展示I/O统计,每秒更新一次 测试结果:

  8. mysql查询之 连续出现的数字,重复出现的邮箱,删除重复的电子邮箱

    1.编写一个 SQL 查询,查找所有至少连续出现三次的数字. +----+-----+ | Id | Num | +----+-----+ | 1 | 1 | | 2 | 1 | | 3 | 1 | ...

  9. React+antd+less框架搭建步骤,看吧,整的明白儿的

    1.node版本 首先你要先看下你的node版本,如果小于10,建议升级到10及以上,因为低版本的 node 在自动创建 react框架时,有配置文件跟10及以上的有比较大的差异,而且需要增加.修改的 ...

  10. TIBCO Jaspersoft Studio 报表软件使用教程

    Detail 1里面放置动态内容框可以循环遍历数据 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn ...