首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Excel转PDF编程中ExportAsFixedFormat有关问题

2012-06-30 
Excel转PDF编程中ExportAsFixedFormat问题在MSDN上看Excel2007可以将xlsx文件转换为pdf文件,还有参考编码:

Excel转PDF编程中ExportAsFixedFormat问题
在MSDN上看Excel2007可以将xlsx文件转换为pdf文件,还有参考编码:

http://msdn.microsoft.com/en-us/library/bb407651(v=office.12).aspx

于是就照着这个编了一通,结果调试时候报错,ex.message:出现异常值不在预期的范围内
代码如下,很简单,就是把网站根目录下的一个.xlsx文件转为pdf,源文件在,打开正常,但是保存时候出错。

期待高手看看,哪里写的不对,先谢谢拉!

C# code
using System;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using Microsoft.Office.Interop.Excel;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;public partial class _Default : System.Web.UI.Page {    protected void Page_Load(object sender, EventArgs e)    {    }    protected void Button1_Click(object sender, EventArgs e)    {        //Creating an Instance of the ApplicationClass Object        Microsoft.Office.Interop.Excel.ApplicationClass excelApplication = new Microsoft.Office.Interop.Excel.ApplicationClass();        Microsoft.Office.Interop.Excel.Workbook excelWorkBook = null;        //Declaring the Appropriate Variables for open        string paramSourceBookPath = Server.MapPath("MBAP.xlsx");        object paramMissing = Type.Missing;        //Declaring the Appropriate Variables for ExportAsFixedFormat        string paramExportFilePath = Server.MapPath("test.pdf") ;        Microsoft.Office.Interop.Excel.XlFixedFormatType paramExportFormat = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;        Microsoft.Office.Interop.Excel.XlFixedFormatQuality paramExportQuality = Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard;        bool paramOpenAfterPublish = false;        bool paramIncludeDocProps = true;        bool paramIgnorePrintAreas = true;        object paramFromPage = Type.Missing;        object paramToPage = Type.Missing;        try        {            // Open the source workbook.            excelWorkBook = excelApplication.Workbooks.Open(paramSourceBookPath,                paramMissing, paramMissing, paramMissing, paramMissing,                paramMissing, paramMissing, paramMissing, paramMissing,                paramMissing, paramMissing, paramMissing, paramMissing,                paramMissing, paramMissing);                        //set alert to monitor program            Response.Write("<script>alert('完成打开xlsx')</script>");            // Save it in the target format.            if (excelWorkBook != null)                excelWorkBook.ExportAsFixedFormat(paramExportFormat,                    paramExportFilePath, paramExportQuality,                    paramIncludeDocProps, paramIgnorePrintAreas, paramFromPage,                    paramToPage, paramOpenAfterPublish,                    paramMissing);                        //set alert to monitor program            Response.Write("<script>alert('已经保存Pdf')</script>");        }        catch (Exception ex)        {            // Respond to the error.            Response.Write("<script>alert('运行出错"+ex.Message+"')</script>");        }        finally        {            // Close the workbook object.            if (excelWorkBook != null)            {                excelWorkBook.Close(false, paramMissing, paramMissing);                excelWorkBook = null;            }            // Quit Excel and release the ApplicationClass object.            if (excelApplication != null)            {                excelApplication.Quit();                excelApplication = null;            }            GC.Collect();            GC.WaitForPendingFinalizers();            GC.Collect();            GC.WaitForPendingFinalizers();        }      }}


[解决办法]
Microsoft.Office.Interop.Excel.XlFixedFormatType paramExportFormat = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;


Microsoft.Office.Interop.Excel.XlFixedFormatQuality paramExportQuality = Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard;

应该是enum类型

enum Microsoft.Office.Interop.Excel.XlFixedFormatType paramExportFormat = enum Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;
enum Microsoft.Office.Interop.Excel.XlFixedFormatQuality paramExportQuality = enum Microsoft.Office.Interop.Excel.XlFixedFormatQuality.xlQualityStandard;

热点排行