使用NPOI根据DataSet(DataTable)创建Excel
。逻辑代码:
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Web;
namespace ExportExcel
{
public class DataSetExportExcel
{
/// <summary>
///根据DataSet获得Excel文件流,保存文件
/// </summary>
/// <param name="tableSet">DataSet内容</param>
/// <param name="sheetName">Excel中表名</param>
/// <param name="filePath">文件直接保存到本地的位置</param>
/// <returns>Excel内容二进制流</returns>
public static List<string> RenderToExcel(DataSet tableSet, string sheetName, string filePath)
{
using (MemoryStream ms = ExportDataSetToExcel(tableSet, sheetName))
{
SaveToFile(ms, filePath);
byte[] bytes = ms.GetBuffer();
string encodeData = Convert.ToBase64String(bytes);
List<string> fileData = new List<string>();
fileData.Add(encodeData);
fileData.Add(ms.Length.ToString());
return fileData;
}
}
/// <summary>
///根据DataSet获得Excel文件流,弹出选择框用户选择储存位置
/// </summary>
/// <param name="tableSet">DataSet内容</param>
/// <param name="context">浏览器请求</param>
/// <param name="fileName">Excel文件名</param>
/// <param name="sheetName">Excel中表名</param>
public static void RenderToExcel(DataSet tableSet, HttpContext context, strin