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



  • 相关阅读:
    根据NSString字符串长度自动改变UILabel的frame
    计算两个日期的天数问题
    iOS学习笔记(02)
    iOS学习笔记(01)
    iOS使用Swift语言检查并提示更新
    iOS的一些关键字
    一些常见warning的原因和解决方法
    Objective-C和Swift实现单例的几种方式
    与导航栏下控件的frame相关的edgesForExtendedLayout、translucent、extendedLayoutIncludesOpaqueBars、automaticallyAdjustsScrollViewInsets等几个属性的详解
    App常见崩溃问题分析
  • 原文地址:https://www.cnblogs.com/elliot-lei/p/7525194.html
Copyright © 2011-2022 走看看