一· 通過構造table表格導出Excel
//1、獲取數據源(List變量)
//List<Person> list = new List<Person>() {
// new Person(){ID=1,Name="張三",Age=20,Sex="男"},
// new Person(){ID=2,Name="李四",Age=21,Sex="女"},
// new Person(){ID=3,Name="王五",Age=22,Sex="男"},
// new Person(){ID=4,Name="趙六",Age=23,Sex="女"}
//};
//2、構造table表格
string sHtml = "";
StringBuilder sTable = new StringBuilder();
// sTable.Append("<table border=\"1\">");
sHtml += "<table border=\"1\">";
//定義列頭
// sTable.Append("<tr><td>編號</td><td>姓名</td><td>年齡</td><td>性別</td></tr>");
sHtml += "<tr><td>編號</td><td>姓名</td><td>年齡</td><td>性別</td></tr>";
//定義數據行
foreach (var item in list)
{
sTable.Append("<tr><td>"+item.ID+"</td><td>"+item.Name+"</td><td>"+item.Age+"</td><td>"+item.Sex+"</td></tr>");
}
sTable.Append("</table>");
//3、通過file輸出excel文件
byte[] fileContents = Encoding.Default.GetBytes(sTable.ToString());
return File(fileContents, "application/ms-excel", "人員表.xls");
二·通過NPOI第三方組件導出excel
添加NPOI引用
public ActionResult ExportByNPOI()
{
//1、獲取數據源(List變量)
//List<Person> list = new List<Person>() {
// new Person(){ID=1,Name="張三",Age=20,Sex="男"},
// new Person(){ID=2,Name="李四",Age=21,Sex="女"},
// new Person(){ID=3,Name="王五",Age=22,Sex="男"},
// new Person(){ID=4,Name="趙六",Age=23,Sex="女"}
//};
//2、創建Excel文件的對象
NPOI.HSSF.UserModel.HSSFWorkbook excel = new NPOI.HSSF.UserModel.HSSFWorkbook();
//添加一個sheet
NPOI.SS.UserModel.ISheet sheet = excel.CreateSheet("Sheet1");
//給sheet1添加標題行
NPOI.SS.UserModel.IRow head = sheet.CreateRow(0);
head.CreateCell(0).SetCellValue("編號");
head.CreateCell(1).SetCellValue("姓名");
head.CreateCell(2).SetCellValue("年齡");
head.CreateCell(3).SetCellValue("性別");
//將數據逐步寫入sheet1各個行
for (int i = 0; i < list.Count; i++)
{
NPOI.SS.UserModel.IRow row = sheet.CreateRow(i + 1);
row.CreateCell(0).SetCellValue(list[i].ID);
row.CreateCell(1).SetCellValue(list[i].Name);
row.CreateCell(2).SetCellValue(list[i].Age);
row.CreateCell(3).SetCellValue(list[i].Sex);
}
// 寫入到客戶端
System.IO.MemoryStream ms = new System.IO.MemoryStream();
excel.Write(ms);
ms.Seek(0, SeekOrigin.Begin);
return File(ms, "application/vnd.ms-excel", "人員表.xls");
}