tnblog
首页
视频
资源
登录

Excel的创建以及填充数据

6742人阅读 2019/11/29 13:07 总访问:118186 评论:1 收藏:0 手机
分类: .NET MVC

在公司实际开发中,我们用到Excel文件的地方很多,下面我来讲解一下如何创建


比如我们做一个如下图的报表:


前台页面设计:


@{
    ViewBag.Title = "Index";
}
<a href="/Excel/Down2">下载</a>

后台代码:


public void Down2() {
            //创建Excel文件
            HSSFWorkbook workbook = new HSSFWorkbook();
            //创建表
            HSSFSheet sheet = workbook.CreateSheet("业绩表") as HSSFSheet;
            //创建行
            HSSFRow row1 = sheet.CreateRow(0) as HSSFRow;
            row1.Height = 600;
            HSSFRow row2 = sheet.CreateRow(1) as HSSFRow;
            row2.Height = 600;
            HSSFRow row3 = sheet.CreateRow(2) as HSSFRow;
            row3.Height = 600;
            for (int i = 0; i < 8; i++)
            {
                row1.CreateCell(i);
                row2.CreateCell(i);
                row3.CreateCell(i);
                //设置列宽
                sheet.SetColumnWidth(i, 1000*3);
            }
            //合并前四列
            for (int i = 0; i < 4; i++)
            {
                sheet.AddMergedRegion(new NPOI.SS.Util.Region(0, i, 2, i));
            }
            //合并第一行5列到8列
            sheet.AddMergedRegion(new NPOI.SS.Util.Region(0, 4, 0, 7));
            //合并第5列2到3行
            sheet.AddMergedRegion(new NPOI.SS.Util.Region(1, 4, 2, 4));
            //合并第6列2到3行
            sheet.AddMergedRegion(new NPOI.SS.Util.Region(1, 5, 2, 5));
            //合并第二行7、8列
            sheet.AddMergedRegion(new NPOI.SS.Util.Region(1, 6, 1, 7));
            //水平垂直居中样式
            HSSFCellStyle cellStyle = workbook.CreateCellStyle() as HSSFCellStyle;
            cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
            cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;
            row1.GetCell(0).SetCellValue("编码");
            row1.GetCell(0).CellStyle = cellStyle;
            row1.GetCell(1).SetCellValue("月度");
            row1.GetCell(1).CellStyle = cellStyle;
            row1.GetCell(2).SetCellValue("工资");
            row1.GetCell(2).CellStyle = cellStyle;
            row1.GetCell(3).SetCellValue("绩效");
            row1.GetCell(3).CellStyle = cellStyle;
            row1.GetCell(4).SetCellValue("8月经营性指标");
            row1.GetCell(4).CellStyle = cellStyle;
            row2.GetCell(4).SetCellValue("在职人数");
            row2.GetCell(4).CellStyle = cellStyle;
            row2.GetCell(5).SetCellValue("新增人数");
            row2.GetCell(5).CellStyle = cellStyle;
            row2.GetCell(6).SetCellValue("实际销售为准");
            row2.GetCell(6).CellStyle = cellStyle;
            row3.GetCell(6).SetCellValue("人力");
            row3.GetCell(6).CellStyle = cellStyle;
            row3.GetCell(7).SetCellValue("出单率");
            row3.GetCell(7).CellStyle = cellStyle;
            
            //测试数据
            for (int i = 3; i < 12; i++)
            {
                //创建行
                HSSFRow sub = sheet.CreateRow(i) as HSSFRow;
                //创建列
                sub.CreateCell(0).SetCellValue("aa" + i);
                sub.CreateCell(1).SetCellValue("bb" + i);
                sub.CreateCell(2).SetCellValue("cc" + i);
                sub.CreateCell(3).SetCellValue("dd" + i);
                sub.CreateCell(4).SetCellValue("ee" + i);
                sub.CreateCell(5).SetCellValue("ff" + i);
                sub.CreateCell(6).SetCellValue("hh" + i);
                sub.CreateCell(7).SetCellValue("ii" + i);
            }
            
            //内存流
            MemoryStream memory = new MemoryStream();
            workbook.Write(memory);
            Response.AddHeader("Content-Disposition", "attachment;filename=公司业绩.xls");
            Response.BinaryWrite(memory.ToArray());
        }


下载注意事项:

当我们想要点击某个按钮下载Excel文件时,我们在结束时加上

//内存流

MemoryStream memory = new MemoryStream();

workbook.Write(memory);

Response.AddHeader("Content-Disposition", "attachment;filename=公司业绩.xls");

Response.BinaryWrite(memory.ToArray());

说明:我们需要把生成的文件通过文件流转换正二进制数组,这样我们才可以下载



然后我们点击下载就可以下载一个Excel电子表(公司业绩.xls)

电子表格效果如图:

在实际开发中,我们可以根据自己的需要来填充数据


是不是很简单呢,你学会了吗?


评价
网络上你重拳出击,现实中你刚上初一
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术