问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中怎么把报表导出到excel

发布网友 发布时间:2022-04-19 10:50

我来回答

5个回答

热心网友 时间:2023-07-27 01:57

导入数据库

@RequestMapping("/uploadOrderFile")
@ResponseBody
public Object uploadOrderFile(HttpServletRequest request, HttpServletResponse response,@RequestParam(value = "file") MultipartFile[] files) throws ServletException, IOException, ParseException{
Workbook rwb=null;
if(files!=null && files.length>0){
       try {
    // String filePath = request.getSession().getServletContext().getRealPath("/") + "\\uploadOrderFile\\" +  files.getOriginalFilename();
    // System.out.println("----------"+filePath);
    rwb = Workbook.getWorkbook(files[0].getInputStream());
    Sheet rs=rwb.getSheet(0);//默认0是第一张表,或者rwb.getSheet(Sheet1)Excel要导入的表名
    int clos=rs.getColumns();//得到所有的列
    int rows=rs.getRows();//得到所有的行
        //存放Excel表抬头名称以及对应的列
        Map<Integer,Object> map=new HashMap<Integer, Object>();
        //实体类集合存放每次循环获得的值
        List<Medicine> medicineList=new ArrayList<Medicine>();  
        for (int i = 0; i < rows; i++) {
         //创建实体类
        Medicine medicine=new Medicine();
        if(i==0){//遍历第一行获取抬头跟对应的列
         for (int j = 0; j <clos; j++) {//取得每个抬头名称对应的列         
         if(rs.getCell(j, i).getContents().equals("品名")){
         map.put(j,"品名");
         }else if(rs.getCell(j, i).getContents().equals("商品编号")){
         map.put(j,"商品编号");
         }else if(rs.getCell(j, i).getContents().equals("生产日期")){
         map.put(j,"生产日期");
         }else if(rs.getCell(j, i).getContents().equals("产地")){
         map.put(j,"产地"); 
         }else if(rs.getCell(j, i).getContents().equals("生产厂家")){
         map.put(j,"生产厂家");
         }else if(rs.getCell(j, i).getContents().equals("批号")){
         map.put(j,"批号");
         }
         }
        }else{        
         //循环遍历map 》》》存的Excel表的抬头名称以及对应的列
         for (int j = 0; j < clos; j++) {
         if(map.get(j)==null){//如果=null 进入下一个循环
         continue;
         }
         if(map.get(j).equals("品名")){
         //如果为空结束当前循环,进入下一个循环
        if(rs.getCell(j, i).getContents()==null||rs.getCell(j, i).getContents().equals("")){
        continue;
        }         
         medicine.setMedicineName(rs.getCell(j, i).getContents());
         }else if(map.get(j).equals("商品编号")&&map.get(j)!=null){
         //如果为空结束当前循环,进入下一个循环
        if(rs.getCell(j, i).getContents()==null||rs.getCell(j, i).getContents().equals("")){
        continue;
        } 
         medicine.setMedicineCode(rs.getCell(j, i).getContents());         
         }else if(map.get(j).equals("生产日期")&&map.get(j)!=null){
         medicine.setCreateTime(rs.getCell(j, i).getContents());
         if(rs.getCell(j, i).getContents()!=null && !rs.getCell(j, i).getContents().equals("")){
         //如果生产日期存在 则+三年给到期日期赋值
         //CommonUtil.getMedicineEffectiveTime为封装好的类
         medicine.setEffectTime(CommonUtil.getMedicineEffectiveTime(rs.getCell(j, i).getContents(),3));
         }
         }else if(map.get(j).equals("产地")&&map.get(j)!=null){
         medicine.setAddress(rs.getCell(j, i).getContents());
         
         }else if(map.get(j).equals("生产厂家")&&map.get(j)!=null){
         medicine.setProcingArea(rs.getCell(j, i).getContents());
        
         }else if(map.get(j).equals("批号")&&map.get(j)!=null){
         medicine.setBatchNumber(rs.getCell(j, i).getContents());
         }        
         }
         medicineList.add(medicine);//获得的值放入集合中                 
        }        
        }
        //新增用到的list
        List<Medicine> addList=new ArrayList<Medicine>(); 
        //修改用到的list
        List<Medicine> updateList=new ArrayList<Medicine>(); 
        //导入数据
        for(int i=0;i<medicineList.size();i++){      
        //判断商品编号是否存在
        if(medicineService.selectMedicineCode(medicineList.get(i).getMedicineCode()).size()>0){
        //如果存在则修改        
        updateList.add(medicineList.get(i));        
        }else{        
        addList.add(medicineList.get(i));        
        }
    }
        int update=0;
        int add=0;
        if(updateList!=null&&updateList.size()>0){
        update=medicineService.updateMedicine(updateList);        
        }
        if(addList!=null&&addList.size()>0){
        add= medicineService.addMedicine(addList);     
        }
        if(update>0||add>0){
        return new ResponseModel().attr(ResponseModel.KEY_DATA,"数据导入成功!");
        }else{
        return new ResponseModel().attr(ResponseModel.KEY_ERROR,"数据导入失败!");
        }
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
    
    }else{
    return new ResponseModel().attr(ResponseModel.KEY_ERROR,"没有需要导入的数据!");
    }
return null;
}

导出

package beans.excel;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Date;

import jxl.Workbook;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Boolean;
import jxl.write.DateFormats;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

public class MutiStyleExcelWrite {
    public void createExcel(OutputStream os) throws WriteException,IOException {
        //创建工作薄
        WritableWorkbook workbook = Workbook.createWorkbook(os);
        //创建新的一页
        WritableSheet sheet = workbook.createSheet("First Sheet", 0);
        //构造表头
        sheet.mergeCells(0, 0, 4, 0);//添加合并单元格,第一个参数是起始列,第二个参数是起始行,第三个参数是终止列,第四个参数是终止行
        WritableFont bold = new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD);//设置字体种类和黑体显示,字体为Arial,字号大小为10,采用黑体显示
        WritableCellFormat titleFormate = new WritableCellFormat(bold);//生成一个单元格样式控制对象
        titleFormate.setAlignment(jxl.format.Alignment.CENTRE);//单元格中的内容水平方向居中
        titleFormate.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//单元格的内容垂直方向居中
        Label title = new Label(0,0,"JExcelApi支持数据类型详细说明",titleFormate);
        sheet.setRowView(0, 600, false);//设置第一行的高度
        sheet.addCell(title);
        
        //创建要显示的具体内容
        WritableFont color = new WritableFont(WritableFont.ARIAL);//选择字体
        color.setColour(Colour.GOLD);//设置字体颜色为金*
        WritableCellFormat colorFormat = new WritableCellFormat(color);
        Label formate = new Label(0,1,"数据格式",colorFormat);
        sheet.addCell(formate);
        Label floats = new Label(1,1,"浮点型");
        sheet.addCell(floats);
        Label integers = new Label(2,1,"整型");
        sheet.addCell(integers);
        Label booleans = new Label(3,1,"布尔型");
        sheet.addCell(booleans);
        Label dates = new Label(4,1,"日期格式");
        sheet.addCell(dates);
        
        Label example = new Label(0,2,"数据示例",colorFormat);
        sheet.addCell(example);
        //浮点数据
        //设置下划线
        WritableFont underline= new WritableFont(WritableFont.ARIAL,WritableFont.DEFAULT_POINT_SIZE,WritableFont.NO_BOLD,false,UnderlineStyle.SINGLE);
        WritableCellFormat greyBackground = new WritableCellFormat(underline);
        greyBackground.setBackground(Colour.GRAY_25);//设置背景颜色为灰色
        Number number = new Number(1,2,3.1415926535,greyBackground);
        sheet.addCell(number);
        //整形数据
        WritableFont boldNumber = new WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD);//黑体
        WritableCellFormat boldNumberFormate = new WritableCellFormat(boldNumber);
        Number ints = new Number(2,2,15042699,boldNumberFormate);
        sheet.addCell(ints);
        //布尔型数据
        Boolean bools = new Boolean(3,2,true);
        sheet.addCell(bools);
        //日期型数据
        //设置黑体和下划线
        WritableFont boldDate = new WritableFont(WritableFont.ARIAL,WritableFont.DEFAULT_POINT_SIZE,WritableFont.BOLD,false,UnderlineStyle.SINGLE);
        WritableCellFormat boldDateFormate = new WritableCellFormat(boldDate,DateFormats.FORMAT1);
        Calendar c = Calendar.getInstance();
        Date date = c.getTime();
        DateTime dt = new DateTime(4,2,date,boldDateFormate);
        sheet.addCell(dt);
        //把创建的内容写入到输出流中,并关闭输出流
        workbook.write();
        workbook.close();
        os.close();
        
    }
}

热心网友 时间:2023-07-27 01:57

是不是在JSP页面导出,如果实在JSP页面导出的话要setContenttype如果不是,可能就要用到相关的报表工具了

热心网友 时间:2023-07-27 01:58

使用jxl工具,我之前分享给公共方法,今天头条 搜索 黑客师 里面有分享,

热心网友 时间:2023-07-27 01:58

itext

POI
~
~
~
~
~

热心网友 时间:2023-07-27 01:59

我想弱弱的问你 下excel也是数据库啊
Java 实现数据库数据导出为 Excel 文件

1. 数据库表设计创建"data_export"表,用于记录导出数据的记录信息。同时,创建"data_export_excel"表,用于存储导出的Excel文件信息。2. 项目依赖引入poi-ooxml库是生成Excel文件的核心,需在项目中添加此依赖。由于SpringBoot starter模块包含了Scheduled功能,无需额外引入。3. Excel生成工具类定义Excel表...

Java导入、导出excel保姆级教程(附封装好的工具类)

要实现这个功能,首先需要在项目中引入Apache POI库。在pom.xml中添加相关依赖后,我们开始一步步操作:创建Excel的基本元素,包括WorkBook,然后添加Sheet并设置名称。 接着创建Row和Cell,可以指定单元格的类型,如文本、数字等。 美化导出的Excel,通过创建样式和字体,如设置字体样式、颜色和大小,调整...

如何用Java导出数据存到excel里面

import java.io.*;import java.io.File.*;import java.util.*;public class excel { public static void main(String[] args){ String targetfile = "c:/out.xls";//输出的excel文件名 String worksheet = "List";//输出的excel文件工作表名 String[] title = {"ID","NAME","DESCRIB"};...

Java实现Excel导入和导出,看这一篇就够了(珍藏版)(一)

灵活设置表中数据,通过Controller代码实现动态导出。1.11 动态导出(导出图片)将图片链接转换为java.net.URL类型,实现图片在导出文件中的直接显示。1.12 动态导出(实现下拉列表)设置性别、城市等列的下拉选择,用于数据导出时的约束限制。1.13 动态导出(横向合并)将单元格横向合并,通过ExcelUtils.CO...

用java将数据导出到wps表格中,怎么实现

2)点击导出按钮后预览: 3)最终生成的excel表格图片预览: 二:代码演示: 说明:执行操作时,请先引进导出excel表格的jar文件包。 找到导出按钮所执行的js方法,在java后天查看该方法的实现即可。 1)jsp代码: [html] view plaincopyprint? &lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%...

Java开发中如何用POI优雅的导出Excel文件

实现步骤包括:1)定义注解,标注需要导出的字段及字段名称,以便生成表头。2)实体类设计,根据注解确定哪些字段需要导出到Excel。3)使用POI库操作Excel文件,通过HttpServletResponse或文件存储进行输出。具体实现中,将数据从集合中读取,根据注解生成表头,并填充到Excel的相应列中。最后,将Excel文件输出到...

如何导出生成excel文件 java

在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主。下面给出用java写入数据到excel表格方法:1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。下载地址:http://www.andykhan.com...

怎样实现把java显示的结果在EXCEL中输出

1./ 出险信息导出到excel(fc)param mapping param form param request param response throws IOException / public void exportActoExcel(ActionMapping mapping, ActionForm form ,HttpServletRequest request,HttpServletResponse response) throws IOException { ActionErrors errors = new ActionErrors();Ac...

报表如何批量导出成 excel 文件

)}{报表2(参数1=value1;参数2=value2;…)}。这种方式在高版本的Tomcat中,会有一些特殊符号的限定,使用时可以将{}转换成对应的urlencode方式,{为%7B,}为%7D,如果有其他值的话,做对应转换即可。多表多Excel:这种方式和示例二类似,在实际使用中导出Excel时要求每个报表导出为不同的Excel文件。

急啊!java中怎么把10万条数据导入Excel,

public class ExcelWrit { public static void main(String[] args) throws IOException, RowsExceededException, WriteException { String path="D:\\123.xlsx";//找到Excel表格 File file=new File(path);//为excel表格开辟内存 WritableWorkbook workbook=Workbook.createWorkbook(file);WritableSheet ...

用友报表怎么导出excel模式 ufo报表怎么导出excel 用友u8怎么导出报表为excel java怎么导出excel eplan导出excel报表 怎么导出excel表格 决算报表怎样导出excel access怎么导入excel 导出excel报表
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
阿维菌素使用方法 阿维菌素的作用和使用方法是什么?怎 这个账号密码是什么?路由器密码也不对,宽带密码也不对 拼多多拒收退回快递怎么操作 高通与谷歌合作的Android Things物联网系统明年对所有骁龙处理器开放... 艾滋病中医能治疗吗 中药用于艾滋病的效果 什么是史前 为什么电脑右下角会出现一个小黑屏,怎么都去不掉,QQ截图一下它就去掉... 我的电脑一部分黑屏,在右下角。并且桌面图标有阴影 该怎么消除? java 通用导出一个excel 404 Not Found 怎样实现把java显示的结果在EXCEL中输出 java操作excel有多少个工具类 java怎样输出excel文件 java里将从excel读到的数据用csv导出,代码怎么写 java excel导出数据页面怎么写 java导出excel java导出复杂Excel报表求帮助 用JAVA导出一个Excel文件的工具 404 Not Found java导出数据到excel的几种方法的比较 谁能给我个Java 的 Excel导出工具类 如何用java完成Excel快速的导入导出 java使用什么技术实现excel数据的批量导入导出 java导出excel有什么好的工具吗 最近松下空调开制暖后。半小时自动停机然后定时灯一直闪烁 松下空调制热问题 松下空调为什么制热的相当慢还有温度上不 松下空调怎么调制热 java怎么导出excel 《十年》txt全集下载 秋刀鱼的滋味小说txt全集免费下载 10分钟算不出来看你是否老年痴呆算术题 雷氏家族家谱及字辈排序 组织生活会谈心谈话内容 组织生活会谈话内容是什么? 党员谈心谈话内容 党员谈心谈话谈什么内容 组织生活谈心谈话内容如何填写? 民主生活会谈心谈话内容 党支部如何开展组织生活会 2017年组织生活会谈心谈话方案 谈心谈话六必谈指什么 民主生活会谈话内容有哪些? 如何开展党员谈心谈话 谈心谈话制度是指什么 支委班子与党员谈心谈话,开始怎样提问 《党章》中对谈心谈话是怎么要求的 党员七项制度包括哪些内容