天天看點

aspose.cells html excel導出,C#使用Aspose.Cells導出Excel簡單實作

首先,需要添加引用Aspose.Cells.dll,官網下載下傳位址:http://downloads.aspose.com/cells/net

将DataTable導出Xlsx格式的檔案下載下傳(網頁輸出):

aspose.cells html excel導出,C#使用Aspose.Cells導出Excel簡單實作

1 ///

2 /// 導出Excel表格

3 ///

4 /// 資料集合

5 /// 資料表頭

6 ///

7 public void ExportExcel(DataTable dt, string[] header)

8 {

9 Workbook wb = new Workbook(FileFormatType.Xlsx);

10 try

11 {

12 Worksheet sheet = wb.Worksheets[0];

13 sheet.Name = "MO上行查詢結果";

14 if (dt.Rows.Count <= 0)

15 {

16 System.Web.HttpContext.Current.Response.Write("");

17 return;

18 }

19 // 為單元格添加樣式

20 Aspose.Cells.Style style = wb.CreateStyle();

21 style.HorizontalAlignment = Aspose.Cells.TextAlignmentType.Center; //設定居中

22 style.Font.Size = 12;//文字大小

23 style.Font.IsBold = true;//粗體

24 style.HorizontalAlignment = TextAlignmentType.Center;//文字居中

25

26 int rowIndex = 0;

27 for (int i = 0; i < header.Length; i++)

28 {

29 sheet.Cells[rowIndex, i].PutValue(header[i]);

30 sheet.Cells[rowIndex, i].SetStyle(style);

31 sheet.Cells.SetColumnWidth(i, 20);//設定寬度

32 }

33 for (int i = 0; i < dt.Rows.Count; i++)//周遊DataTable行

34 {

35 sheet.Cells[i + 1, 0].PutValue(dt.Rows[i]["SENDER"].ToString());

36 sheet.Cells[i + 1, 1].PutValue(dt.Rows[i]["SENDCONTENT"].ToString());

37 sheet.Cells[i + 1, 2].PutValue("");

38 sheet.Cells[i + 1, 3].PutValue(dt.Rows[i]["RECDATE"].ToString());

39 sheet.Cells[i + 1, 4].PutValue(dt.Rows[i]["sn"].ToString());

40 }

41 }

42 catch (Exception e)

43 {

44 System.Web.HttpContext.Current.Response.Write("");

45 }

46 #region 輸出到Excel

47 using (MemoryStream ms = new MemoryStream())

48 {

49

50 wb.Save(ms, new OoxmlSaveOptions(SaveFormat.Xlsx));//預設支援xls版,需要修改指定版本

51 System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xlsx", DateTime.Now.ToString("yyyyMMddHHmmssfff")));

52 System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";

53 System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());

54 wb = null;

55 System.Web.HttpContext.Current.Response.End();

56 }

57 #endregion

58 }

aspose.cells html excel導出,C#使用Aspose.Cells導出Excel簡單實作

Aspose.Cells.dll 下載下傳位址:http://pan.baidu.com/s/1o8TRXDg

其它相關參考:

https://my.oschina.net/u/876556/blog/98801

http://www.cnblogs.com/top5/archive/2010/02/16/1668801.html

http://www.cnblogs.com/springyangwc/archive/2011/08/12/2136498.html

Aspose.Cells元件可以不依賴excel來導入導出excel檔案:

導入:

public static System.Data.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);

}

導出:

private static void Export(IEnumerable data, HttpResponse response)

{

Workbook workbook = new Workbook();

Worksheet sheet = (Worksheet)workbook.Worksheets[0];

PropertyInfo[] ps = typeof(T).GetProperties();

var colIndex = "A";

foreach (var p in ps)

{

sheet.Cells[colIndex + 1].PutValue(p.Name);

int i = 2;

foreach (var d in data)

{

sheet.Cells[colIndex + i].PutValue(p.GetValue(d, null));

i++;

}

colIndex = ((char)(colIndex[0] + 1)).ToString();

}

response.Clear();

response.Buffer = true;

response.Charset = "utf-8";

response.AppendHeader("Content-Disposition", "attachment;filename=xxx.xls");

response.ContentEncoding = System.Text.Encoding.UTF8;

response.ContentType = "application/ms-excel";

response.BinaryWrite(workbook.SaveToStream().ToArray());

response.End();

}

非常簡單,好用!

————————————————

版權聲明:本文為CSDN部落客「weiky626」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weiky626/article/details/7514637