excel导出
public class Writer {
public static String setFileDownloadHeader(HttpServletRequest request, String fileName) {
final String userAgent = request.getHeader("USER-AGENT");
String finalFileName = null;
try {
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
finalFileName = URLEncoder.encode(fileName,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
finalFileName = new String(fileName.getBytes(), "ISO8859-1");
}else{
finalFileName = URLEncoder.encode(fileName,"UTF8");//其他浏览器
}
} catch (UnsupportedEncodingException e) {
}
return finalFileName;
}
}
public void selectAll(HttpServletRequest request,
HttpServletResponse response) {
// excel数据导出
System.out.println("excel数据导出");
// 创建一个工作簿
HSSFWorkbook workBook = new HSSFWorkbook();
// 创建一个工作表,名为:第一页
HSSFSheet sheet = workBook.createSheet("sheet1");
// 设置单元格的宽度(0:表示第一行的第一个单元格,1:第一行的第二个单元格)
sheet.setColumnWidth((short) 0, 2500);
sheet.setColumnWidth((short) 1, 5000);
sheet.setColumnWidth((short) 2, 5000);
// 创建一个单元格,从0开始
HSSFRow row = sheet.createRow((short) 0);
// 构造一个数组设置第一行之后的单元格
HSSFCell[] cell = new HSSFCell[1];
for (int i = 0; i < cell.length; i++) {
cell[i] = row.createCell(i);
}
cell[0].setCellValue("证件号");
// cell[1].setCellValue("姓名");
// cell[2].setCellValue("单位");
// 获得从数据库中查询出来的数据
List<BlackListItem> list = blackListDao.selectAll();
// 循环list中的数据
for (int i = 0; i < list.size(); i++) {
BlackListItem blackListItem = list.get(i);
HSSFRow dataRow = sheet.createRow(i + 1);
// 創建2個單元格
HSSFCell[] data = new HSSFCell[1];
for (int j = 0; j < data.length; j++) {
data[j] = dataRow.createCell(j);
}
data[0].setCellValue(blackListItem.getPassId());
// data[1].setCellValue(blackListItem.getName());
// data[2].setCellValue(blackListItem.getCompanyName());
}
try {
// 设置reponse参数
String fileName = Writer
.setFileDownloadHeader(request, "人员信息表.xls");
//
response.setHeader("Content-Disposition", "inline; filename="
+ fileName);
// 确保发送的当前文本格式
response.setContentType("application/vnd.ms-excel");
ServletOutputStream outputStream = response.getOutputStream();
// Write to the output stream
workBook.write(outputStream);
// 清除缓存
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
excel导入
public List<String> addBatchBlackList(MultipartFile file,
HttpServletRequest request) {
System.out.println("開始導入");
/**
* 用来记录添加数据库中不存在的人员的信息
*/
ArrayList<String> pssidList = new ArrayList<String>();
Workbook workbook = null;
try {
if (file.getOriginalFilename().toLowerCase().endsWith("xls")) {
workbook = new HSSFWorkbook(file.getInputStream());
} else if (file.getOriginalFilename().toLowerCase()
.endsWith("xlsx")) {
workbook = new XSSFWorkbook(file.getInputStream());
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
List<BlackListItem> list = new ArrayList<BlackListItem>();
BlackListItem ppc = null;
// Read the Sheet
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
Sheet sheet = workbook.getSheetAt(numSheet);
if (sheet == null) {
continue;
}
// 读取excel
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
Row row = sheet.getRow(rowNum);
if (row != null) {
ppc = new BlackListItem();
Cell PASSID = row.getCell(0);
String passId = getValue(PASSID);
ppc.setPassId(passId);
System.out.println(ppc.getPassId());
list.add(ppc);
}
}
}
for (BlackListItem item : list) {
pssidList.add(item.getPassId());
}
return pssidList;
}
private String getValue(Cell row) {
if (row.getCellType() == row.CELL_TYPE_BOOLEAN) {
return String.valueOf(row.getBooleanCellValue());
} else if (row.getCellType() == row.CELL_TYPE_NUMERIC) {
String str = String.valueOf(row.getNumericCellValue());
String[] abc = str.split("\\.");
return abc[0];
} else {
return String.valueOf(row.getStringCellValue());
}
}
相关推荐
java Excel导入导出
Excel源代码,导入导出各种工具类 <groupId>org.apache.poi <artifactId>poi <groupId>org.apache.poi <artifactId>poi-scratchpad 代码实例: String path = ""; byte[] bytes; vo.setCurrentPage(0); vo....
Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出...
java excel导入导出,里面的读写excel的代码已经写好了。
Java实现Excel导入导出功能网络搜集,很好用
Java实现Excel导入导出简介 Java实现Excel导入导出是通过Java语言编写的程序,将数据从Excel文件中读取或写入到Excel文件中。这种方式可以实现数据的批量处理和分析,提高工作效率。 Java实现Excel导入导出的应用...
java_poi实现excel导入导出功能,有详细的注解
java实现excel的导入导出(poi详解),经过测试poi效率要比jxl要高很多,特别是数据量大的时候jxl根本无法用肉眼入目,本资源是个可运行项目demo,很有参考价值!
java excel导入导出数据库表内容 直接调用写好的方法,修改下数据库名和路径即可
用Java实现的Excel的导入导出,简洁明了,高质量代码。
java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入
java导入导出Excel的工具类,含工具类使用例子。 导入导出Excel其实就是调一下set/get方法。
java EXCEL导入导出工具类 包含具体代码 课根据需求改造
万能的Excel导入导出工具. 支持从List中导出. 支持从List中导入导出. 支持从List里面还有List<POJO>>中导入导出. 支持导出类似课程表结构类型纵表. 支持国际化. 支持数据字典. 支持单元格中下拉框数据校验. 支持自动...
java对excel的导入以及导出,采用的框架是poi,直接就可以运行。
Java excel导入导出;工具类+注解的实现;比较适用于做公共excel导入导出;还提供一个模板样例,样例中前端请求用的是axios,后台是Java实现。有任何问题,随时提问。
java 开发中Poi操作excel批量导入导出项目需要的jar包
Java中excel导入导出的通用方法。