java功能_java 功能点

1. 根据页面中table返回excel,不请求后台

.factory('exportExcelService',function($window){var uri='data:application/vnd.ms-excel;base64,',

template='

',

base64=function(s){return$window.btoa(unescape(encodeURIComponent(s)));},

format=function(s,c){return s.replace(/{(\w+)}/g,function(m,p){returnc[p];

})};return{

tableToExcel:function(tableId,worksheetName){var table=$(tableId);var ctx={worksheet:worksheetName,table:table.html()};var href=uri+base64(format(template,ctx));returnhref;

}

};

})

2. 后台请求生成excel

@RequestMapping("/exportExcelRecord")public voidExportExcelRecord(MedicalCardModel medicalCardModel,HttpServletResponse response){

List result=medicalCardService.getMedicalRecord(medicalCardModel);int size =result.size();

OutputStream out=null;try{

out= ExcelBasePoiUtils.setResponse(response, "record.xlsx");

SXSSFWorkbook wb= new SXSSFWorkbook(5000);

Sheet sh=wb.createSheet();

ExcelDataFormatter edf= newExcelDataFormatter();

Map mapGender = new HashMap();

mapGender.put(IS_MAN+"", GenderEnums.getName(IS_MAN));

mapGender.put(IS_WOMAN+"", GenderEnums.getName(IS_WOMAN));

edf.set("gender", mapGender);

List list =null;for (int i = 0; i < size; i = i +EXCEL_MAX_FROM_DB) {

list=(size-i>EXCEL_MAX_FROM_DB?result.subList(i, i + EXCEL_MAX_FROM_DB):result.subList(i,i+size));

ExcelBasePoiUtils.getWorkBook(list, sh, wb, edf);

}

wb.write(out);

wb.dispose();

ExcelBasePoiUtils.close(out);

}catch(Exception e) {

}

}

public static void getWorkBook(List list, Sheet sh, Workbook book, ExcelDataFormatter edf) throwsException {

Field[] fields= ReflectUtils.getClassFieldsAndSuperClassFields(list.get(0).getClass());

Excel excel= null;

Cell cell= null;

Row row= null;int columnIndex = 0;if(sh.getLastRowNum() == 0){

row= sh.createRow(0);

XSSFCellStyle titleStyle=setTitleStyle(book);for(Field field : fields) {

field.setAccessible(true);

excel= field.getAnnotation(Excel.class);if (excel == null || excel.skip() == true) {continue;

}

sh.setColumnWidth(columnIndex, excel.width()* 256);

cell=row.createCell(columnIndex);

cell.setCellStyle(titleStyle);

cell.setCellValue(excel.value());

columnIndex++;

}

}

CellStyle cs=book.createCellStyle();

CreationHelper createHelper=book.getCreationHelper();for(T t : list) {int rowColumn =ThreadLocalUtils.get();

row=sh.createRow(rowColumn);

columnIndex= 0;

Object o;for(Field field : fields) {

field.setAccessible(true);

excel= field.getAnnotation(Excel.class);if (excel == null || excel.skip() == true) {continue;

}

cell=row.createCell(columnIndex);

o=field.get(t);//常用类型置前

if (o == null) {

cell.setCellValue("");

}else if(o instanceofString){

cell.setCellValue((String)o);

}else if (o instanceofInteger){

Integer intValue=(Integer)o;if (edf == null) {

cell.setCellValue(intValue);

}else{

Map map =edf.get(field.getName());if (map == null) {

cell.setCellValue(intValue);

}else{

cell.setCellValue(map.get(intValue.toString()));

}

}

}else if (o instanceofDate) {

cs.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-MM-dd HH:mm:ss"));

cell.setCellStyle(cs);

cell.setCellValue((Date) o);

}else if (o instanceof Double || o instanceofFloat) {

cell.setCellValue((Double) o);

}/*else if (o instanceof Boolean) {

Boolean boolValue = (Boolean) o;

if (edf == null) {

cell.setCellValue(boolValue);

} else {

Map map = edf.get(field.getName());

if (map == null) {

cell.setCellValue(boolValue);

} else {

cell.setCellValue(map.get(boolValue.toString().toLowerCase()));

}

}

}*/else if (o instanceofLong){

Long longValue=(Long)o;

cell.setCellValue(longValue);

}else{

cell.setCellValue(o.toString());

}

columnIndex++;

}

ThreadLocalUtils.add();

}

}

/*** 释放资源

*@paramos

*@throwsIOException*/

public static void close(OutputStream os) throwsIOException{

ThreadLocalUtils.remove();

os.flush();

os.close();

}

/***

*

Description: Excel 注解, 配合反射完成Excel 到 javaBean 的映射

*

Company: GDKJ

*@authorwbw

*@version1.0.0

* @date 2017年3月2日*/@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.FIELD, ElementType.TYPE})public @interfaceExcel {

String value()default "";int width() default 20;boolean skip() default false;

}

@Excel(value="序号",skip=true)privateLong id;

@Excel("病案号")private String caseNo;

48011cf85673c4545f64e51bf7ba4b0e.png

3. 导入excel

@RequestMapping("/importExcelRecord")public DataModel ImportExcelRecord(MultipartFile file){

List caseNoList = new ArrayList();

try {

caseNoList = ExcelImport.readExcel(file);

if(caseNoList.size()<1)

{

return ResultMapUtils.getResultMap(model);

}

} catch (Exception e) {

e.printStackTrace();

return ResultMapUtils.getFailResultMap(Constants.GET_ERROR_KEY, e.getMessage());

}

/**

* 读excel

* @param file

* @return

* @throws IOException

*/

public static List readExcel(MultipartFile file) throws IOException {

String fileName = file.getOriginalFilename();

String extension = fileName.lastIndexOf(".") == -1 ? "" : fileName

.substring(fileName.lastIndexOf(".") + 1);

if ("xls".equals(extension)) {

return read2003Excel(file);

} else if ("xlsx".equals(extension)) {

return read2007Excel(file);

} else {

throw new IOException("不支持的文件类型");

}

}

/**

* 读取 office 2003 excel

* 第二个参数: 是哪列开启非空效验,如果是-1就开启全部非空效验,列从0开始

* @throws IOException

* @throws FileNotFoundException

* @author wbw

*/

private static List read2003Excel(MultipartFile file)

throws IOException {

HSSFWorkbook hwb = new HSSFWorkbook(file.getInputStream());

HSSFSheet sheet = hwb.getSheetAt(0);

String value = null;

HSSFRow row = null;

HSSFCell cell = null;

List result = new ArrayList();

for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++)

{

row = sheet.getRow(i);

if (row == null) {

continue;

}

int firstColumn=row.getFirstCellNum();

cell = row.getCell(firstColumn);

if (cell == null)

{

continue;

}

DecimalFormat df = new DecimalFormat("0");// 格式化 number String

switch (cell.getCellType())

{

case XSSFCell.CELL_TYPE_STRING:

value =cell.getStringCellValue();

break;

case XSSFCell.CELL_TYPE_NUMERIC:

if ("@".equals(cell.getCellStyle().getDataFormatString()))

{

value = df.format(cell.getNumericCellValue()).toString();

} else if ("General".equals(cell.getCellStyle()

.getDataFormatString())) {

value = df.format(cell.getNumericCellValue());

}

break;

default:

value = "";

}

if (value == null || "".equals(value)) {

continue;

}

result.add(value);

}

return result;

}

/**

* 读取Office 2007 excel

* */

private static List read2007Excel(MultipartFile file)

throws IOException {

XSSFWorkbook xwb = new XSSFWorkbook(file.getInputStream());

XSSFSheet sheet = xwb.getSheetAt(0);

String value = null;

XSSFRow row = null;

XSSFCell cell = null;

List result = new ArrayList();

for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++)

{

row = sheet.getRow(i);

if (row == null) {

continue;

}

cell = row.getCell(row.getFirstCellNum());

if (cell == null) {

continue;

}

DecimalFormat df = new DecimalFormat("0");// 格式化 number String

switch (cell.getCellType())

{

case XSSFCell.CELL_TYPE_STRING:

value = cell.getStringCellValue();

break;

case XSSFCell.CELL_TYPE_NUMERIC:

if ("@".equals(cell.getCellStyle().getDataFormatString()))

{

value = df.format(cell.getNumericCellValue()).toString();

} else if ("General".equals(cell.getCellStyle()

.getDataFormatString())) {

value = df.format(cell.getNumericCellValue());

}

break;

default:

value = "";

}

if (value == null || "".equals(value)) {

continue;

}

result.add(value);

}

return result;

}

4. 点击编辑,编辑变保存,输入框可编辑,获取焦点

{{cor.operator}}{{cor.updatetime | date:'yyyy-MM-dd'}}

编辑

$scope.checkEdit = true;

$scope.editSec = function (event,id,context) {if(angular.element(event.target).context.innerHTML == "编辑"){

$scope.checkEdit= false;

angular.element(event.target).parents("tr").find("input").focus();

angular.element(event.target).context.innerHTML = "保存";

}else{

$scope.updateCor(id,context);

$scope.checkEdit= true;

angular.element(event.target).context.innerHTML = "编辑";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值