方法一: 引用库: FreeSpire.XLS(VS NuGet 里面能直接找到)
//void ConvertToPDF(string Path,string filename)
//{
// Spire.Xls.Workbook workbook = new Spire.Xls.Workbook();
// workbook.LoadFromFile(Path);
//
// Spire.Xls.Worksheet sheet= workbook.Worksheets[0];
// sheet.PageSetup.PrintArea = "A1:I41";//设置打印区域
// sheet.SaveToPdf(Environment.CurrentDirectory.ToString() + @"\OUTPUT_PDF\"+ filename + ".pdf");
//}
方法二:
调用Office库:Microsoft.Office.Interop.Excel
//public bool PrintPDF(string ipt)
//{
// var res = false;
// try
// {
// var lab_path = @"C:\printPDF\pdf.xls";//调用xls模板
// mExcel = new Microsoft.Office.Interop.Excel.Application();
// mExcel.Visible = false;//true
// mWorkbook = mExcel.Application.Workbooks.Open(lab_path, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
// Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
// mWorkSheet = new Microsoft.Office.Interop.Excel.Worksheet();
// mWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)mWorkbook.Worksheets[1];//
// mWorkSheet.Activate();
//
// ..........此部分未数据填充以及文件格式设置
//
// mWorkSheet.PageSetup.PaperSize = XlPaperSize.xlPaperA4;//设置打印纸张大小
// mWorkSheet.PageSetup.PrintArea = "A1:I41";//设置打印区域
// //end filling value
// //start to print out
// //mWorkbook.PrintOut(Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);//mWorkbook.PrintOutEx();
// //end print,then save file
//
// var savetoXls = Environment.CurrentDirectory.ToString() + @"\PDF_XLS\PDF_" + ipt + ".xls";
// var savetoPDF = Environment.CurrentDirectory.ToString() + @"\PDF_PDF\PDF_" + ipt + ".pdf";
//
// mWorkbook.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, savetoPDF);
// mWorkbook.SaveAs(savetoXls, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value);
// mWorkbook.Close(false, Missing.Value, Missing.Value);
// mExcel.Quit();
// res =true;
// }
// catch
// {
// res=false;
// throw;
// }
// return res;
//}
可根据需求选择合适的。