【.Net 学习系列】-- 利用Aspose转换Excel为PDF文件

功能:

  1. 从数据库中查询出数据
  2. 利用Aspose.cell + Excel模板绑定数据源生成Excel文件
  3. 通过Aspose.pdf + 生成好的Excel生成PDF文件

实现:

查询数据,根据Excel模板生成Excel文件

var comments = SQLHelper.ExecuteScalar("SELECT TOP 1 BookingOrderComments FROM dbo.BookingOrderHead WHERE BookingOrderHeadID = 181390");
//var dt = SQLHelper.ExecuteDataTable("SELECT TOP 1 BookingOrderComments FROM dbo.BookingOrderHead WHERE BookingOrderCode = 'B1709001412'");

var dt = new DataTable("tbTest");
dt.Columns.Add("BookingOrderComments");
var dr = dt.NewRow();

// 替换Tab键(含有Tab键会导致PDF出现方块乱码)
var str = cbRepleace.Checked ? comments.ToString().Replace(" ", " ") : comments.ToString(); dr.SetField<string>("BookingOrderComments", str); dt.Rows.Add(dr); var designer = new WorkbookDesigner(); //给模板对象设置数据源 designer.SetDataSource(dt); //excel模板的地址 var excelModel = Application.StartupPath + "\Template.xltx"; designer.Workbook = new Workbook(excelModel); designer.Process();//全自动赋值 var dialog = new FolderBrowserDialog(); dialog.Description = "请选择PDF文件保存路径"; if (dialog.ShowDialog() == DialogResult.OK) { //新生成的excel的保存地址 string fileToSave = dialog.SelectedPath + @"" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"; if (System.IO.File.Exists(fileToSave) == true) { System.IO.File.Delete(fileToSave); } designer.Workbook.Save(fileToSave); txtSourcePath.Text = fileToSave; }

生成PDF文件:

if (!Directory.Exists(txtPdfFolder.Text))
{
    Directory.CreateDirectory(txtPdfFolder.Text);
}

var book = new Workbook(txtSourcePath.Text.Trim());
var options = new Aspose.Cells.PdfSaveOptions()
{
    OnePagePerSheet = true
};

var pdfStream = new MemoryStream();
book.Save(pdfStream, options);

var pdfDocument = new Document(pdfStream);

var pdfFile = this.txtPdfFolder.Text.Trim() + @"" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
pdfDocument.Save(pdfFile);

源代码:https://pan.baidu.com/s/1i58BDlj



原文地址:https://www.cnblogs.com/elliot-lei/p/7525194.html