数据的导入导出、图片上传
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Adobe Dreamweaver JavaScript
作者:陈钰桃
撰写时间:2020年8月9日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一、数据导出(使用到Excel文档 利用了浏览器的文件下载)
第一种方法、(导出旅客信息例子 自己创建模板 相对复杂)
- 导出按钮绑定点击事件
<button type="button" class="layui-btn ml-2" οnclick="exportExcel()">导出Excel</button>
function exportExcel() {
var startEndDate = $("#startEndDate").val();
//在新页面打开下载的url
//在新窗口打开 在本页面打开浏览器识别不到为调用
window.open('@Url.Content("~/OthersMaintenance/ExportLKdata/ExportLKDATA?startEndDate=")' + startEndDate);
}
② 查询出需要导出的数据(多表查询)
③ NPOI 导出 Excel(下方为具体操作)
由于涉及到Excel操作 c#不支持直接进行Excel操作 所以需要使用第三方组件
⑴-微软ms office excel(比较麻烦)需要安装office 并且版本一致
⑵-NPOI (JAVA POI) [比较常用] 主要功能x1s
1-创建工作簿
NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
2-创建工作表
Ⅰ写法 直接创建及修改工作表名称
NPOI.SS.UserModel.ISheet sheet1 = workbook.CreateSheet("旅客信息"); //不能使用new
Ⅱ写法 先创建工作表再修改工作表名称 修改位置:0-第一个工作表索引为0
NPOI.SS.UserModel.ISheet sheet1 = workbook.CreateSheet();
workbook.SetSheetName(0, "旅客信息");//修改工作表名称
3-设置表头标题
3-1、创建行
NPOI.SS.UserModel.IRow rowTitle = sheet1.CreateRow(0);//下标 索引为0
rowTitle.HeightInPoints = 35;//行高 HeightInPoints的单位是点,而Height的单位是1/20个点,所以Height的值永远是HeightInPoints的20倍
3-2、创建单元格
NPOI.SS.UserModel.ICell cell0 = rowTitle.CreateCell(0);
3-3、单元格设置值
string strTitle = "旅客数据";
if (!string.IsNullOrEmpty(startEndDate))
{
strTitle += " " + startEndDate;
}
cell0.SetCellValue(strTitle);
3-4、合并单元格
sheet1.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 6));
3-5、设置单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle_Title = workbook.CreateCellStyle();
cellStyle_Title.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//水平居中
cellStyle_Title.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;//垂直居中
NPOI.SS.UserModel.IFont font_title = workbook.CreateFont();//声明字体
font_title.Color = NPOI.HSSF.Util.HSSFColor.Blue.Index;//设置字体颜色 Index转换
font_title.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Bold;//加粗
font_title.FontHeightInPoints = 18;//字体大小
cellStyle_Title.SetFont(font_title);//设置单元格字体
cell0.CellStyle = cellStyle_Title;//设置单元格样式
4、设置表头
4.1-创建一行 索引为1
NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(1);//给sheet添加第一行的头部标题
row1.Height = 22 * 20;//设置行高
4.2-创建单元格 并设置值
row1.CreateCell(0).SetCellValue("序号");
row1.CreateCell(1).SetCellValue("旅客姓名");
row1.CreateCell(2).SetCellValue("旅客类型");
row1.CreateCell(3).SetCellValue("证件类型");
row1.CreateCell(4).SetCellValue("证件号码");
row1.CreateCell(5).SetCellValue("联系人姓名");
row1.CreateCell(6).SetCellValue("联系人电话");
4.3-创建表头的样式
NPOI.SS.UserModel.ICellStyle cellStyle_header = workbook.CreateCellStyle();//声明样式
cellStyle_header.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;//水平居中
cellStyle_header.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;//垂直居中
//设置背景颜色
cellStyle_header.FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground;
cellStyle_header.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Aqua.Index;
//设置边框线为实线
cellStyle_header.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;