导出的excel的是一个项目的基本功能 所以不多说 我们项目用的npoi 可以直接在vs的NuGet里面直接搜索下载 安装就可以用了
//创建一个excelHSSFWorkbook hwb = new HSSFWorkbook();//创建一个excel中的表格HSSFSheet sheet = (HSSFSheet)hwb.CreateSheet("sheet1");//创建一个公司的titleHSSFRow headerrow = (HSSFRow)sheet.CreateRow(0);headerrow.Height = 650;HSSFCell headercell = (HSSFCell)headerrow.CreateCell(0);headercell.SetCellValue("xxx有限公司");//创建一个单元格样式HSSFCellStyle cs = (HSSFCellStyle)hwb.CreateCellStyle();//垂直居中cs.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;//水平居中cs.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//设置\n自动换行cs.WrapText = true;//给单元格设置样式headercell.CellStyle = cs;HSSFFont hf = (HSSFFont)hwb.CreateFont();hf.Boldweight = 900;//设置字体加粗hf.FontHeight = 260;//字体的高度hf.Color = HSSFColor.Blue.Index;//设置字体颜色cs.SetFont(hf);//合并单元格 sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 46));//创建行下面的列
这部分代码只是在创建excel 以及设置excel的样式 还没有进行导入
List<PowerRate> lit = new List<PowerRate>();lit = _powerrate.GetPowerRateAll();//数据源 导出的数据 HSSFRow row1 = (HSSFRow)sheet.CreateRow(1); //表示从第几行开始写入
接下来就是创建表头
HSSFRow row1 = (HSSFRow)sheet.CreateRow(1);//创建行下面的列row1.CreateCell(0).SetCellValue("xx");row1.CreateCell(1).SetCellValue("xxx");row1.CreateCell(2).SetCellValue("xxx");row1.CreateCell(3).SetCellValue("xxx");//创建表头
接着写入内容
for (int i = 0; i < lit.Count; i++){//创建行HSSFRow row = (HSSFRow)sheet.CreateRow(i + 2); // i+2 表示从第二行开始写入数据 第一行是表头 //创建行下面的列row.CreateCell(0).SetCellValue(lit[i].City);row.CreateCell(1).SetCellValue(lit[i].County);row.CreateCell(2).SetCellValue(lit[i].StatiocCode);row.CreateCell(3).SetCellValue(lit[i].StationName);}
接着就是写入流 然后在浏览器端生成一个excel
MemoryStream ms = new MemoryStream();string filename = DateTime.Now.ToString("yyyyMMddHHmmss");hwb.Write(ms);ms.Seek(0, SeekOrigin.Begin);
我用的 MVC 那么控制器的类型应该是FileResult 返回的是return File(ms, "application/vnd.ms-excel", filename + ".xls");
然后在浏览器就可以生成一个你需要的excel了 由于本人还是个菜鸟 所以只知道怎么用 后续的具体原理还在研究