.NET导出excel方法

it2022-05-09  62

//导出 private string outFileName = "";

private string fullFilename = ""; private Workbook book = null; private Worksheet sheet = null;

private void AddHeader(string[] dt) { Cell cell = null;

int col = 0; foreach (string item in dt) { cell = sheet.Cells[0, col]; cell.PutValue(item); col++; }

}

 

private void AddBody(DataTable dt, params int[] cl) { int cls = 0; foreach (int item in cl) { for (int r = 0; r < dt.Rows.Count; r++) { sheet.Cells[r + 1, cls].PutValue(dt.Rows[r][item].ToString()); } cls++; } }

 

public string Export(DataTable dt) { try { fullFilename = "Excel"; book = new Workbook(); //book.Open(tempfilename); sheet = book.Worksheets[0]; sheet.Name = "数据";

//sheet.Name = sheetName; //AddTitle(title, dt.Columns.Count); AddHeader(new string[] { "列1", "列2", ...}); AddBody(dt, 列的个数); sheet.AutoFitColumns(); //sheet.AutoFitRows(); fileName = System.DateTime.Now.ToString("yyyymmddhhmmss") + ".xls"; string SaveFilePath = @"\DownLoadFile\" + fileName; book.Save(System.AppDomain.CurrentDomain.BaseDirectory + SaveFilePath); this.fullFilename = System.AppDomain.CurrentDomain.BaseDirectory + SaveFilePath; //byte[] array = File.ReadAllBytes(fullFilename); FileStream fs = new FileStream(fullFilename, FileMode.Open); byte[] data = new byte[fs.Length]; fs.Read(data, 0, data.Length);

BinaryWriter w = new BinaryWriter(fs); MemoryStream ms = new MemoryStream(data); w.Write(ms.ToArray()); w.Close(); w.Dispose();

fs.Close(); fs.Dispose(); //HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName); //HttpContext.Current.Response.BinaryWrite(ms.ToArray()); //HttpContext.Current.Response.End(); ms.Close(); ms.Dispose(); return fullFilename; } catch (Exception e) { return string.Empty; } }

 

调用时只需要Export(DataTable dt)这个方法就行

转载于:https://www.cnblogs.com/lzw-2017/p/6386071.html

相关资源:ASP.NET导出EXCEL超高兼容

最新回复(0)