C#组件系列 你值得拥有的一款Excel处理神器Spire.XLS

2019-12-30 13:54:39王振洲

(2)Spire.XLS实现转换

通过上文,我们知道,Spire.Office提供了Spire.XLS和Spire.PDF两个组件,那么他们之间的转换就简单了。我们还是模拟一个文件上传的功能。

前端有一个上传控件:

 

复制代码 <input type="file" name="txt_file" />

 

后台有一个接收上传文件的方法如下:


[HttpPost]
  public JsonResult UploadFile()
  {
   var strRes = string.Empty;
   var oFile = Request.Files["txt_file"];
   Workbook book = new Workbook();
   book.LoadFromStream(oFile.InputStream);
   var strFullName = @"D:DataUpload" + "First" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
   book.SaveToPdf(strFullName);
   return Json(new object { }, JsonRequestBehavior.AllowGet);
  }

就这么简单的几句话即可实现将上传的Excel转成PDF文件。根据源文件生成Workbook对象,Spire.XLS提供了多种方式,我们最常用的两种方式如下:


// 根据文件路径生成workbook.
public void LoadFromFile(string fileName);
// 根据文件流生成workbook.
public void LoadFromStream(Stream stream);

2.1、最原始的转换

原始Excel文件:

C#,组件,Excel,Spire.XLS

转换成PDF之后

C#,组件,Excel,Spire.XLS

2.2、不好看?加一个边框即可。

C#,组件,Excel,Spire.XLS

转换之后

C#,组件,Excel,Spire.XLS

2.3、自定义转换的PDF

有些情况下,我们Excel里面有很多列,导致默认生成的pdf换行问题,这样将会导致PDF的可读性很差,这种情况,Spire.XLS为我们提供了自定义转换PDF的方式,比如可以指定PDF的页宽,页高,大小等等属性。

比如有如下Excel文档需要转换成PDF文件:

C#,组件,Excel,Spire.XLS

如果按照常规的转换,生成的PDF的宽度不足以显示Excel的所有列,于是转换出来的效果这样:

C#,组件,Excel,Spire.XLS