MVC 实现数据导入Excel,并在客户端下载。

来源:互联网 发布:美国陆军 知乎 编辑:程序博客网 时间:2024/06/05 23:58

1 .在control实现数据导出到excel



2 在view 中实现文件下载


导出excel方法 需要引入

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.HSSF.UserModel;

        public MemoryStream DataTableToExcel(DataTable data, string sheetName, bool isColumnWritten)        {            int i = 0;            int j = 0;            int count = 0;            ISheet sheet = null;            MemoryStream ms = new MemoryStream();                        fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);            if (fileName.IndexOf(".xlsx") > 0) // 2007版本                workbook = new XSSFWorkbook();            else if (fileName.IndexOf(".xls") > 0) // 2003版本                workbook = new HSSFWorkbook();            try            {                if (workbook != null)                {                    sheet = workbook.CreateSheet(sheetName);                }                else                {                    return ms;                }                if (isColumnWritten == true) //写入DataTable的列名                {                    IRow row = sheet.CreateRow(0);                    for (j = 0; j < data.Columns.Count; ++j)                    {                        row.CreateCell(j).SetCellValue(data.Columns[j].ColumnName);                    }                    count = 1;                }                else                {                    count = 0;                }                for (i = 0; i < data.Rows.Count; ++i)                {                    IRow row = sheet.CreateRow(count);                    for (j = 0; j < data.Columns.Count; ++j)                    {                        row.CreateCell(j).SetCellValue(data.Rows[i][j].ToString());                    }                    ++count;                }                workbook.Write(fs); //写入到excel                fs.Close();                byte[] data1 = File.ReadAllBytes(fileName);                MemoryStream ms1 = new MemoryStream(data1);                 return ms1;            }            catch (Exception ex)            {                Console.WriteLine("Exception: " + ex.Message);                return null;            }        }


0 0
原创粉丝点击