XLS TO PDF
Microsoft.Office.Interop.Excel.XlFixedFormatType targetType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;
object missing = Type.Missing;
Microsoft.Office.Interop.Excel.ApplicationClass application = null;
Microsoft.Office.Interop.Excel.Workbook workBook = null;
try
{
application = new Microsoft.Office.Interop.Excel.ApplicationClass();
application.Visible = false;
workBook = application.Workbooks.Open(sourcePath);
foreach (var worksheet in workBook.Sheets)
{
((Microsoft.Office.Interop.Excel._Worksheet)worksheet).PageSetup.PrintArea = "";//设置为空,将忽略打印区域,将该sheet中都打印
//((Microsoft.Office.Interop.Excel._Worksheet)worksheet).PageSetup.Orientation//
// = Microsoft.Office.Interop.Excel.XlPageOrientation.xlLandscape;//设置打印方向纵向或横向
}
//workBook.SaveAs();
workBook.ExportAsFixedFormat(targetType, targetPath);
//workBook.Saved = false;
result = true;
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
result = false;
}
finally
{
//System.Windows.Forms.Clipboard.Clear();
if (workBook != null)
{
Marshal.ReleaseComObject(workBook);
workBook = null;
}
if (workBook != null)
{
Marshal.ReleaseComObject(workBook);
workBook = null;
}
// Save the excel main window handle to force exit excel when necessary.
IntPtr hWnd = new IntPtr(application.Parent.Hwnd);
application.Quit();
if (application != null)
{
Marshal.ReleaseComObject(application);
application = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
// Kill excel if needed.
EndTask(hWnd, true, true);
}
[DllImport("user32.dll", SetLastError = true)]
private static extern bool EndTask(IntPtr hWnd, bool fShutDown, bool fForce);
- 导出不成功有很多原因
- 1.xls文档有加密或需要更新数据
- 2.office 2007 的 没有安装插件SaveAsPDFandXPS.exe
- 3.权限问题(特别是IIS部署的)
- a.访问路径的权限
- b.Docm 的权限
- c.print的权限(很容易忽视,因为不报错)Printers and Faxes 中(Send To OneNote 2010,需要一个打印驱动)添加network,network service

浙公网安备 33010602011771号