excel export OpenXml

        public ActionResult Export(string queryJson)
        {
            try
            {
                var list = Biz.GetDetailView(queryJson);
                if (list == null)
                    return Json(new { IsSuccess = false, Message = "无数据!" }, "text/html");

                var basePath = Server.MapPath("~/");
                var file = string.Format("{0:yyMMddHHmmssfff}.xlsx", DateTime.Now);

                System.IO.File.Copy(Path.Combine(basePath, "Templates", "详细明细.xlsx"), Path.Combine(basePath, "Export", file));

                using (SpreadsheetDocument document = SpreadsheetDocument.Open(Path.Combine(basePath, "Export", file), true))
                {
                    IEnumerable<Sheet> sheets = document.WorkbookPart.Workbook.Descendants<Sheet>();
                    if (sheets.Count() == 0)
                        TempData["Message"] = "文件中未包含指定数据!";
                    else
                    {
                        WorksheetPart sheet = (WorksheetPart)document.WorkbookPart.GetPartById(sheets.First().Id);
                        WorksheetWriter writer = new WorksheetWriter(document, sheet);
                        SpreadsheetStyle style = SpreadsheetStyle.GetDefault(document);

                        int rowIndex = 2;
                        for (int i = 0; i < list.Rows.Count; i++)
                        {
                            writer.PasteText(string.Format("A{0}", rowIndex), list.Rows[i]["IMEI"].ToString(), style);
                            writer.PasteText(string.Format("B{0}", rowIndex), list.Rows[i]["GOODSNAME"].ToString(), style);
                            writer.PasteText(string.Format("C{0}", rowIndex), list.Rows[i]["UNITNAME"].ToString(), style);
                            rowIndex++;
                        }
                        writer.Save();
                    }
                }
                return Json(new { IsSuccess = true, Message = "导出成功!", File = file }, "text/html");
            }
            catch (Exception ex)
            {
                return Json(new { IsSuccess = false, Message = ex.Message }, "text/html");
            }
        }

  

Guess you like

Origin www.cnblogs.com/yyzyou/p/12174589.html