一般情況下都是 DataTable導出為Excel,這次來一個導出為自定義格式的Excel
Workbook wb = new Workbook(); Worksheet sheet = wb.Worksheets[0];//獲取工作頁 Cells cs = sheet.Cells;//獲取工作頁的單元格 //設置標題 Aspose.Cells.Style headerStyle = wb.Styles[wb.Styles.Add()];//設置標題樣式 headerStyle.HorizontalAlignment = TextAlignmentType.Center; headerStyle.Font.Name = "宋體"; headerStyle.Font.Size = 18; headerStyle.Font.IsBold = true; cs.Merge(0, 0, 1, 12);//合並單元格(參數詳解:第一個為哪一行,第二個為那一列,第三個為合並幾個行單元格,最后一個為合並幾個列單元格) cs[0, 0].PutValue("表");//表名(該方法是為 單元格賦值) cs[0, 0].SetStyle(headerStyle);//設置樣式 cs.SetRowHeight(0, 28);//設置行高
設置好單元格好,就可以導出了
MemoryStream ms = wb.SaveToStream(); byte[] bt = ms.ToArray(); string fileName = "情況"+DateTime.Now.ToString("yyyyMMddHHmmss")+".xls"; System.Web.HttpContext curContext = System.Web.HttpContext.Current; curContext.Response.Clear(); curContext.Response.Buffer = true; curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = System.Text.Encoding.UTF8; curContext.Response.Charset = ""; curContext.Response.AppendHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls"); curContext.Response.BinaryWrite(bt); curContext.Response.Flush(); curContext.ApplicationInstance.CompleteRequest();
附一個導入excel的方法
public DataTable ReadExcel(String strFileName) { Workbook book = new Workbook(); book.Open(strFileName); Worksheet sheet = book.Worksheets[0]; Cells cells = sheet.Cells; return cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true); }