Aspose.Cells导入与导出excel

       /// <summary>
        /// 导入excel
        /// </summary>
        /// <param name="strFilePath"></param>
        /// <returns></returns>
        public static DataTable ImportCompareMeanExcel(string strFilePath)
        {
            Workbook workbook = new Workbook();
            DataTable dtExcel = null;
            try
            {
                workbook.Open(strFilePath);
                Cells cells = workbook.Worksheets[0].Cells;
                dtExcel = cells.ExportDataTableAsString(12, 0, cells.MaxDataRow + 1, cells.MaxColumn + 1, true);//showTitle
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return dtExcel;
        }
        /// <summary>
        /// 根据excel模板导出数据
        /// </summary>
        /// <param name="context"></param>
        /// <param name="model">数据</param>
        /// <param name="templateFileName">模板路径</param>
        /// <param name="sheetName">excel工作簿名称</param>
        /// <param name="fileNameHead">导出文件名称</param>
        /// <param name="action">需要补充的数据</param>
        public  static void DataTableExportIsExcel(HttpContext context, DataTable model, string templateFileName, string sheetName, string fileNameHead,Action<WorkbookDesigner, DataTable> action)
        {

            MemoryStream ms = ExportHelper.OutModelFileToStream(model, templateFileName, sheetName, action);
            byte[] bt = ms.ToArray();
            string fileName = fileNameHead + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; //客户端保存的文件名  
            //以字符流的形式下载文件  
            context.Response.ContentType = "application/vnd.ms-excel";
            //通知浏览器下载文件而不是打开
            context.Response.AddHeader("Content-Disposition",
            "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
            context.Response.BinaryWrite(bt);
            context.Response.Flush();
            context.Response.End();
        }



        /// <summary>
        /// 返回excel文件流
        /// </summary>
        /// <param name="model">数据</param>
        /// <param name="templateFileName">模板路径</param>
        /// <param name="sheetName">excel工作簿名称</param>
        /// <param name="fileNameHead">导出文件名称</param>
        /// <param name="action">需要补充的数据</param>
        /// <returns>excel文件流</returns>
        public static MemoryStream OutModelFileToStream(DataTable model, string templateFileName, string sheetName, Action<WorkbookDesigner, DataTable> action)
        {
            WorkbookDesigner designer = new WorkbookDesigner();
            designer.Open(templateFileName);
            designer.SetDataSource(model);
            //对designer做额外操作
            if (action != null)
            {
                action(designer, model);
            }
            designer.Process();
            if (!string.IsNullOrEmpty(sheetName))
            {
                designer.Workbook.Worksheets[0].Name = sheetName;
            }
            return designer.Workbook.SaveToStream();
        }
原文地址:https://www.cnblogs.com/sjyzz/p/8405814.html