精华内容
下载资源
问答
  • 成都市风景名胜poi数据2020年wsgs84坐标.xlsx
  • //poi导出excel 保存到本地 public void exportExcel(HttpServletRequest req, HttpServletResponse resp) throws IOException{ HSSFWorkbook wb = new HSSFWorkbook(); req.setCharacterEncoding("UTF-...
    //poi导出excel 保存到本地

    public void exportExcel(HttpServletRequest req, HttpServletResponse resp) throws IOException{

    HSSFWorkbook wb = new HSSFWorkbook();
    req.setCharacterEncoding("UTF-8");
    resp.setCharacterEncoding("UTF-8");
    resp.setContentType("application/x-download");

    String filedisplay = "未匹配的产品清单.xls";
    filedisplay = URLEncoder.encode(filedisplay, "UTF-8");
    resp.addHeader("Content-Disposition", "attachment;filename="+ filedisplay);
    HSSFSheet sheet = wb.createSheet("未匹配产品");
    sheet.setColumnWidth(0, 50*160);
    HSSFFont font = wb.createFont();
    font.setFontName("宋体");
    font.setFontHeightInPoints((short) 16);

    HSSFRow row = sheet.createRow((int) 0);

    HSSFCellStyle style = wb.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

    HSSFCell cell = row.createCell(0);
    cell.setCellValue("产品名称");

    Map<String, Object> params = new HashMap<String, Object>();
    params.put("userId", this.getMember().getId());
    params.put("matchabled", 0);
    List<Match> matchs = this.getBeanManager().listBean(Match.class, params);

    for (int i = 0; i < matchs.size(); i++) {
    row = sheet.createRow((int) i + 1);
    Match match = (Match) matchs.get(i);
    row.createCell(0).setCellValue(match.getName());
    }
    try {
    OutputStream out = resp.getOutputStream();
    wb.write(out);
    out.close();
    }
    catch (Exception e) {
    e.printStackTrace();
    }
    }
    展开全文
  • POI操作本地excel

    2018-12-20 09:15:33
     // 如果要修改笨本地的excel  /*  * cell.setCellValue(""); FileOutputStream excelFileOutPutStream = new  * FileOutputStream(path);// 写数据到这个路径上 workbook.write(excelFileOutPutStream);  ...

    private static final String EXCEL_XLS = "xls";
        private static final String EXCEL_XLSX = "xlsx";

        /**
         * 判断文件是否是excel
         * 
         * @throws Exception
         */
        public static void checkExcelVaild(File file) throws Exception {
            if (!file.exists()) {
                throw new Exception("文件不存在");
            }
            if (!(file.isFile() && (file.getName().endsWith(EXCEL_XLS) || file.getName().endsWith(EXCEL_XLSX)))) {
                throw new Exception("文件不是Excel");
            }
        }

        public static void main(String[] args) throws Exception {
            // C:\Users\lqf\Desktop\import.xlsx
            String path = "C://Users//lqf//Desktop//import.xlsx";
            List<Object> list = new ArrayList<>();
            try {
                // 同时支持Excel 2003、2007
                File excelFile = new File(path); // 创建文件对象
                FileInputStream in = new FileInputStream(excelFile); // 文件流
                checkExcelVaild(excelFile);
                Workbook workbook = WorkbookFactory.create(in); // 这种方式
                Sheet sheet = workbook.getSheetAt(0); // 遍历第一个Sheet
                Object o = new Object();
                for (Row row : sheet) {
                    for (int i = 0; i < row.getLastCellNum(); i++) {
                        Cell cell = row.getCell(i);
                        int cellType = cell.getCellType();
                        switch (cellType) {
                        case 0:
                            if (HSSFDateUtil.isCellDateFormatted(cell)) {
                                o = cell.getDateCellValue();
                            } else if (cell.getCellStyle().getDataFormat() == 58) {
                                double value = cell.getNumericCellValue();
                                o = DateUtil.getJavaDate(value);
                            } else {
                                o = cell.getNumericCellValue();
                            }
                            break;
                        case 1:
                            o = cell.getStringCellValue();
                            break;
                        case 2:
                            o = cell.getCellFormula();
                            break;
                        case 3:
                            o = "";
                            break;
                        case 4:
                            o = cell.getBooleanCellValue();
                            break;
                        default:
                            // cell.setCellType(1);
                            o = cell.getStringCellValue();
                            break;
                        }
                        // 如果要修改笨本地的excel
                        /*
                         * cell.setCellValue(""); FileOutputStream excelFileOutPutStream = new
                         * FileOutputStream(path);// 写数据到这个路径上 workbook.write(excelFileOutPutStream);
                         */
                        list.add(o);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {

                for (Object o : list) {
                    System.out.println(o);
                }
            }
        }

    展开全文
  • 闲来无事简单写了一个poi读取本地文件然后导出 excel的单元测试。没有设置excel的格式和设置合并单元格,如果有需要的可以去网上找下,并不难。 好的一步一步的放代码。 首先是单元测试方法也是程序的入口 。 ...

    闲来无事简单写了一个poi读取本地文件然后导出 excel的单元测试。没有设置excel的格式和设置合并单元格,如果有需要的可以去网上找下,并不难。

    好的一步一步的放代码。

    首先是单元测试方法也是程序的入口 。

        @Test
        public void downloadTest(){
            //读取文件
            String path = "C:\\Users\\Administrator\\Desktop\\counterTemplate.xlsx";
            List<String[]> list = readFile(path);
            if (list != null) {
                //列名
                String[] fields = new String[]{"journal","publisher","platform","printISSN","onlineISSN","reportingPeriodTotal",
                        "reportingPeriodHTML","reportingPeriodPDF","jan","feb",
                        "mar","apr","may","jun","jul","aug","sep","oct","nov","dec"};
    
                //写出文件
                String outPath ="E:\\demo\\counterTemplate导出模板.xlsx";
                writerExcel(list, fields, outPath);
            }
        }
    

      然后readFile 是抽取的读取文件方法。对了,因为我读取的本地文件是只有string 和 number 类型的值,所以只对这两个单元格类型进行了判断如果有其它的类型还需要进行判断。单元格类型的数值cellType 是poi Cell.java定义好的只需要进入到Cell.java类里面去看他的属性值就知道对应的什么值了。

      其中有一点点不太好的地方是获取numer的单元格类型值时会有小数点。我没有找到好的方法去转换。所以就偷懒用String的截取方法截取了"."前面的部分。如果有朋友有更好的方法可以留言交流下。

       /**
         * 根据文件路径读取文件返回文件内容数据
         * @param path
         * @return
         */
        private  List<String[]> readFile(String path) {
            File file = new File(path);
            InputStream is =null;
            if (file.exists()) {
                //将file 转换成MultipartFile
                try{
                    MultipartFile mf = new MockMultipartFile(file.getName(),new FileInputStream(file));
                    is = mf.getInputStream();
                    //获取文件名
                    //String fileName = mf.getOriginalFilename(); 获取原始文件名。在单元测试中值是空的。可能不是通过页面上传获取到的文件。
                    String fileName = mf.getName();
    
                    Workbook workbook = null;
                    if (fileName.endsWith("xls")){
                        workbook = new HSSFWorkbook(is);
                    } else if(fileName.endsWith("xlsx")){
                        workbook = new XSSFWorkbook(is);
                    } else {
                        System.out.println("workBoot 创建失败");
                    }
                    //获得当前页
                    Sheet sheet = workbook.getSheetAt(0);
                    //容器
                    List<String[]> list = new ArrayList<>();
    
                    //遍历获取每行
                    int firstRowNum = sheet.getFirstRowNum();
                    int lastRowNum = sheet.getLastRowNum();
                    for (int i =firstRowNum+1;i <= lastRowNum;i++) {
                        Row row = sheet.getRow(i);
                        int lastCellNum = row.getLastCellNum();
                        //遍历每行获取每列的数据
                        String[] cells = new String[lastCellNum];
                        for (int j = 0; j < lastCellNum; j++) {
                            Cell cell = row.getCell(j);
                            String value = "";
                            if (cell != null) {
                                int cellType = cell.getCellType();
                                //判断单元格value 调用不同的返回值获取数据
                                switch (cellType) {
                                    case 0:
                                        double numericCellValue = cell.getNumericCellValue();
    
                                        value = String.valueOf(numericCellValue);
                                        value = value.substring(0,value.lastIndexOf("."));
                                        break;
                                    case 1:
                                        value = cell.getStringCellValue();
                                        break;
                                }
                            }
                            cells[j]=value;
                        }
                        list.add(cells);
                    }
                    return list;
                } catch (Exception  e){
                    System.out.println("文件转换出错");
                    e.printStackTrace();
                } finally {
                   if (is != null) {
                        try {
                            is.close();
                        } catch (Exception e){
                            System.out.println("输入流关闭异常");
                        }
                   }
                }
                return null;
            }else{
                System.out.println("文件不存在");
                return null;
            }
        }
    

       writerExcel是写出到本地的方法。

     1    /**
     2      * 根据路径写出文件到本地
     3      * @param list
     4      * @param fields
     5      * @param outPath
     6      */
     7     private void writerExcel(List<String[]> list, String[] fields, String outPath) {
     8         Workbook workbook = new XSSFWorkbook();
     9         Sheet sheet = workbook.createSheet("用户中心_数据库管理_数据库列表_counter报告_ACS数");
    10         //标题行
    11         Row titleRow = sheet.createRow(0);
    12         for (int i = 0; i < fields.length;i++) {
    13             Cell cell = titleRow.createCell(i);
    14             String field = fields[i];
    15             cell.setCellValue(field);
    16         }
    17         //设置数据列
    18         for (int i = 1;i<list.size();i++) {
    19             String[] data = list.get(i);
    20             //数据行
    21             Row dataRow = sheet.createRow(i);
    22             if (data != null) {
    23                 for (int j = 0;j<data.length;j++) {
    24                     String value = data[j];
    25                     Cell cell = dataRow.createCell(j);
    26                     cell.setCellValue(value);
    27                 }
    28             }
    29         }
    30         //设置头信息
    31         OutputStream os = null;
    32         try {
    33             //根据路径创建输出流
    34             //如果是在controller里可以使用reponse.getOutputStream()方法获取输出流
    35             os = new FileOutputStream(outPath);
    36             workbook.write(os);
    37         } catch (Exception e) {
    38             System.out.println("导出出错");
    39             e.printStackTrace();
    40         }finally {
    41             try {
    42                 if (os != null) {
    43                     os.close();
    44                 }
    45                 workbook.close();
    46             } catch (Exception e) {
    47                 System.out.println("workbook 流关闭失败");
    48             }
    49         }
    50     }

     

    转载于:https://www.cnblogs.com/tonghua-boy/p/10237341.html

    展开全文
  • java PoI 导出excel到本地

    千次阅读 2019-09-08 10:41:02
    package ... import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOEx...
    package cn.zanezz.excel;
    
    import org.apache.poi.hssf.usermodel.*;
    import org.apache.poi.hssf.util.HSSFColor;
    
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * @program: wujizudao->ExcelUtils
     * @description: excel文件导出的相关操作工具类
     * @author: zhaozhen
     * @create: 2019-09-08 10:26
     **/
    public class ExcelUtils {
    
        public static void main(String[] args) {
            ExcelUtils transToExcel = new ExcelUtils();
            try {
                String path = System.getProperty("user.dir");
                OutputStream os = new FileOutputStream(path+"/学生表测试.xls");
                String[] headers = {"姓名","年龄","学号","博客链接","时间"};
                Date date = new Date(System.currentTimeMillis());
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String time = sdf.format(date);
                String[][] list = {
                        {"白滚滚上神","1000000","20100914001000000000","http://baigungun.blog.com.cn/index",time},
                        {"天族夜华","300000","20100914002","http://yehua.com.cn/index",time}
                };
                transToExcel.exporteExcel("学生表",headers,list,os);
                os.close();
    
            }catch (FileNotFoundException e){
                System.out.println("无法找到文件");
            }catch (IOException e){
                System.out.println("写入文件失败");
            }
        }
    
        /**
         * 导出excel文件
         *
         * @param title    表sheet的名字
         * @param headers  表头
         * @param dataList 正文单元格
         * @param out      输出流
         */
        public void exporteExcel(String title, String[] headers, String[][] dataList, OutputStream out) {
            HSSFWorkbook workBook = new HSSFWorkbook();
            createSheet(title, headers, dataList, workBook);
            createSheet(title + "2", headers, dataList, workBook);
            try {
                workBook.write(out);
            } catch (IOException e) {
                System.out.println("写入文件失败" + e.getMessage());
            }
        }
    
    
        /**
         * 创建sheet
         *
         * @param title    sheet的名字
         * @param headers  表头
         * @param dataList 正文单元格
         */
        private void createSheet(String title, String[] headers, String[][] dataList, HSSFWorkbook workBook) {
            HSSFSheet sheet = workBook.createSheet(title);
    //        sheet.setDefaultColumnWidth(15);
            //设置表头和普通单元格的格式
            HSSFCellStyle headStyle = setHeaderStyle(workBook);
            HSSFCellStyle bodyStyle = setBodyStyle(workBook);
    
            createBody(dataList, sheet, bodyStyle);
            createHeader(headers, sheet, headStyle);
        }
    
        /**
         * 创建正文单元格
         *
         * @param dataList  数据数组
         * @param sheet     表
         * @param bodyStyle 单元格格式
         */
        private void createBody(String[][] dataList, HSSFSheet sheet, HSSFCellStyle bodyStyle) {
            for (int a = 0; a < dataList.length; a++) {
                HSSFRow row = sheet.createRow(a + 1);
                for (int j = 0; j < dataList[a].length; j++) {
                    HSSFCell cell = row.createCell(j);
                    cell.setCellStyle(bodyStyle);
                    HSSFRichTextString textString = new HSSFRichTextString(dataList[a][j]);
                    cell.setCellValue(textString);
                }
            }
        }
    
        /**
         * 创建表头
         *
         * @param headers   表头
         * @param sheet     表
         * @param headStyle 表头格式
         */
        private void createHeader(String[] headers, HSSFSheet sheet, HSSFCellStyle headStyle) {
            HSSFRow row = sheet.createRow(0);
            for (int i = 0; i < headers.length; i++) {
                HSSFCell cell = row.createCell(i);
                cell.setCellStyle(headStyle);
                HSSFRichTextString textString = new HSSFRichTextString(headers[i]);
                cell.setCellValue(textString);
                sheet.autoSizeColumn((short) i);
            }
        }
    
    
        /**
         * 设置正文单元格格式
         *
         * @param workBook
         * @return
         */
        private HSSFCellStyle setBodyStyle(HSSFWorkbook workBook) {
            HSSFCellStyle style2 = workBook.createCellStyle();
            style2.setFillForegroundColor(HSSFColor.WHITE.index);
            style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
            style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
            style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
            style2.setAlignment(HSSFCellStyle.ALIGN_LEFT);
    
            HSSFFont font2 = workBook.createFont();
            font2.setFontName("微软雅黑");
            font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
            style2.setFont(font2);
            return style2;
        }
    
        /**
         * 设置表头格式
         *
         * @param workBook
         * @return
         */
        private HSSFCellStyle setHeaderStyle(HSSFWorkbook workBook) {
            HSSFCellStyle style = workBook.createCellStyle();
            style.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
            style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
            style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            style.setBorderRight(HSSFCellStyle.BORDER_THIN);
            style.setBorderTop(HSSFCellStyle.BORDER_THIN);
            style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
    
            HSSFFont font = workBook.createFont();
            font.setFontName("微软雅黑");
            font.setFontHeightInPoints((short) 12);
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            style.setFont(font);
            return style;
        }
    
    }
    
    
    
    展开全文
  • java 如何使用poi读取本地excel的内容呢? 引用: maven 在pom.xml中引入; <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version&...
  • 导入poi和hutool-all的pom依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16</version> </dependency> <...
  • SpringBoot+POI实现本地导出,浏览器下载 导出本地excel表格 //本地导出 XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet1 = workbook.createSheet("sheet1"); for (int i = 0; i < 10; i++...
  • poi 读取本地文件写入Excel

    千次阅读 2019-01-09 12:57:11
    需求:读取已存在的.txt文件,并将其写入本地Excel中; .txt文件格式,每行存在五个字段以':::'分隔,对应excel每行五列: WINDOWS_NT_IS_STARTING_UP:::Windows NT是启动:::系统:::系统:::[{"key":&...
  • poi
  • poi 实现Excel导出到本地

    千次阅读 2016-12-16 16:26:42
    前提是导入POI相关jar包 1.html 导出报表 2.js function exploreExcel () { var startTime = $("#input-start-time").val(); var endTime = $("#input-end-time").val(); var duleStatus = $("#...
  • poi 生成Excel 并保存到 本地

    千次阅读 2018-05-08 11:04:23
    jar包 &lt;dependency&gt;  &lt;groupId&gt;fr.opensagres.xdocreport&...org.apache.poi.xwpf.converter.core&lt;/artifactId&gt;  &lt;version&gt;1.0...
  • <div><p>现在POI本地缓存功能似乎只能使用岛风的缓存,不会跟服务器端的缓存进行比较然后自动更新? 对于我这种现在不使用岛风go的人来说,维护后只能等岛风更新缓存差分包更新,感觉挺不...
  • poi 3.8 中存在SXSSFWorkbook 但是没有despose() 方法,使用时间长了的话有可能造成磁盘没有空间, window环境本地缓存会存放在C盘用户下面AppDate\Local\Temp 下面 linux环境下会存放在 temp/poifile 录下, ...
  • POI导出excle,文件导出到本地

    千次阅读 2017-11-02 18:48:36
    import java.io.FileOutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.UUID; import javax.annotation.Resource;...import org.apache.poi.hssf.usermodel.HSSFCe
  • 一、Maven加入poi依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <...
  • pom.xml 配置poi版本 &amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;gt;org.apache.poi&amp;amp;amp;amp;lt;/groupId&amp;amp;amp...
  • Java 从Jtable 中导出数据到本地Excel保存 导入jar包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version>...
  • poi本地生成Excel到桌面

    千次阅读 2011-09-08 11:04:29
    import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel....
  • 本机这个位置的图片插入到指定的EXCEL中 public static void main(String[] args) { try { export(); } catch (Exception e) { e.printStackTrace(); } ... private static void export() throws Exception{ ...
  • import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel....
  • //解析excel并解析 public static void main(String[] args) throws ... Workbook wb = new XSSFWorkbook("D:\\excel\\poi\\demo.xlsx"); //2.获取sheet Sheet sheetAt = wb.getSheetAt(0);//参数 索引 /...
  • 在各位的指导下,完成了excel本地读取,解决了单元格为空的问题。但是不太明白客户端如何上传excel到服务器并写入数据库。
  • 1、该功能需要poi的jar包,链接: http://pan.baidu.com/s/1migAtNq 密码: 38fx。2、首先新建一个实体类,用以存放单个数据public class Test { private String x; private String y; private String value; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 557
精华内容 222
关键字:

本地poi