zoukankan      html  css  js  c++  java
  • 【.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



  • 相关阅读:
    委托理解
    WebForm与MVC模式优缺点
    关系型数据库与NOSQL
    抽象类与接口
    Asp.net中的状态保持方案
    数据库[约束]笔记
    xml文件操作
    String、Path、File、Directroy 常用方法总结
    面向对象5个基本设计原则
    面向对象分析与设计
  • 原文地址:https://www.cnblogs.com/elliot-lei/p/7525194.html
Copyright © 2011-2022 走看看