精华内容
下载资源
问答
  • java poi导出 合并行 合并列

    千次阅读 2019-07-29 16:16:26
    在excel 导出的时候 碰到要合并行 和合并列的问题 这里使用了一个重要的函数: CellRangeAddress(int, int, int, int) 参数(起始行,终止行,起始列,终止列) 先设计好表格,在设置值,注意:合并了单元格,...

    在excel 导出的时候 碰到要合并行 和合并列的问题
    这里使用了一个重要的函数:
    CellRangeAddress(int, int, int, int)
    参数(起始行,终止行,起始列,终止列)

    先设计好表格,在设置值,注意:合并了单元格,但是想要的列没有变化,设置值的时候要获取想要的列
    在设置边框样式的时候出现了问题
    忘记给每一列都设置样式,这就导致在合并后后面的列没有设置到样式。

    	style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
        style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
        style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平
        style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
    
    展开全文
  • java 单元格合并

    2014-08-10 14:13:20
    java实现table单元格列的合并,可运行,附带源码
  • Java PDF合并代码

    2018-03-11 23:28:28
    Java用iText合并两个PDF文件,包含java代码及所用jar包。
  • java pdf合并实例

    2013-03-09 22:49:48
    java pdf合并实例,里面包含的有iText.jar包。本来是自己有需要,写的一个例子。有需要的可以看一下。
  • Java实现合并排序

    万次阅读 多人点赞 2019-07-20 21:46:24
    给定一组数据,使用合并排序得到这组数据的非降序排列。 2 解决方案 2.1 合并排序原理简介 引用自百度百科: 合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常...

    1 问题描述
    给定一组数据,使用合并排序得到这组数据的非降序排列。

    2 解决方案
    2.1 合并排序原理简介
    引用自百度百科:

    合并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

    合并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。

    将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。合并排序也叫归并排序。

    下面看一下具体排序示例:
    在这里插入图片描述
    排序性能分析:

    在这里插入图片描述

    package com.liuzhen.chapterFive;
    
    public class Mergesort {
        //使用合并排序,获取数组A的非降序排列
        public static void getMergesort(int[] A){
            int lenA = A.length;      //数组A的长度
            if(lenA > 1){
                int[] B = copyArray(A,0);   //获取数组A中前一半元素
                int[] C = copyArray(A,1);   //获取数组A中后一半元素
                getMergesort(B);            //递归排序B中元素
                getMergesort(C);            //递归排序C中元素
                Merge(B,C,A);               //合并数组B和C,返回A的非降序序列
            }
        }
        
        //返回数组A前一半或者后一半的元素,参数a用于判定前一半或者后一半元素
        public static int[] copyArray(int[] A,int a){
            int[] result;
            int len = A.length;
            if(a == 0){         //当a为0时代表返回数组A的前一半元素
                result = new int[len/2];
                for(int i = 0;i < len/2;i++)
                    result[i] = A[i];
            }
            else{              //a不为0时代表返回数组A的后一半元素
                result = new int[len-len/2];
                for(int i = 0;i < (len-len/2);i++)
                    result[i] = A[len/2+i];
            }
            return result;
        }
        
        //合并数组B和C,并将其变成非降序序列存入数组A中
        public static void Merge(int[] B,int[] C,int[] A){
            int i = 0,j = 0,k = 0;
            int lenB = B.length;  //数组B的长度
            int lenC = C.length;  //数组C的长度
            while(i<lenB && j<lenC){
                if(B[i] < C[j]){       
                    A[k] = B[i];    
                    i++;
                }
                else{
                    A[k] = C[j];
                    j++;
                }
                k++;
            }
            if(i == lenB){ //当i等于lenB时,说明B数组中数已经全部存入A中,再把C数组中剩下的元素直接存入数组A中即可
                while(j<lenC){
                    A[k] = C[j];
                    j++;
                    k++;
                }
            }
            if(j == lenC){ //当j等于lenC时,说明C数组中数已经全部存入A中,再把B数组中剩下的元素直接存入数组A中即可
                while(i<lenB){
                    A[k] = B[i];
                    i++;
                    k++;
                }
            }
        }
        
        public static void main(String[] args){
            int[] A = {8,3,2,9,7,1,5,4,4,45,3,2,22};
            getMergesort(A);
            System.out.println("使用合并排序获得A数组的非降序序列结果如下:");
            for(int i = 0;i < A.length;i++)
                System.out.print(A[i]+"\t");
            
        }
    }
    

    运行结果:

    使用合并排序获得A数组的非降序序列结果如下:
    1    2    2    3    3    4    4    5    7    8    9    22    45   
    
    展开全文
  • 最主要的是AAA占两个单元格并合并,BBB占一个单元格,CCC占两个单元格并合并。 代码如下: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf....

    效果图如下:

    最主要的是AAA占两个单元格并合并,BBB占一个单元格,CCC占两个单元格并合并。

    代码如下:

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.util.CellRangeAddress;
    
    public class TestExcel {
    
        public static void main(String[] args) throws IOException {
    
            HSSFWorkbook workbook = new HSSFWorkbook();
    
            HSSFCellStyle style = workbook.createCellStyle();
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
    
            HSSFSheet sheet = workbook.createSheet("sheet");
    
            HSSFRow row0 = sheet.createRow(0);
            HSSFCell cell_00 = row0.createCell(0);
            cell_00.setCellStyle(style);
            cell_00.setCellValue("AAA");
            CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1);
            sheet.addMergedRegion(region);
            
            HSSFCell cell_01 = row0.createCell(2);
            cell_01.setCellStyle(style);
            cell_01.setCellValue("BBB");
            region = new CellRangeAddress(0, 0, 2, 2);
            sheet.addMergedRegion(region);
            
            HSSFCell cell_02 = row0.createCell(3);
            cell_02.setCellStyle(style);
            cell_02.setCellValue("CCC");
            region = new CellRangeAddress(0, 0, 3, 4);
            sheet.addMergedRegion(region);
    
            File file = new File("/home/liu/test/demo.xls");
            FileOutputStream fout = new FileOutputStream(file);
            workbook.write(fout);
            fout.close();
        }
    
    }

    其中容易出错的是:

     HSSFCell cell_00 = row0.createCell(0);

     HSSFCell cell_01 = row0.createCell(2);

     HSSFCell cell_02 = row0.createCell(3);

    新的单元格所在的位置是按照合并后的单元格来计算的。

    展开全文
  • java poi 跨行合并 并赋值

    千次阅读 2018-05-29 11:27:33
    //循环赋值,先创建所有单元格,要合并的单元个再创建完成后再获取单元格赋值并合并  List<WebThreeIndex> listThree=webDao.getWebThreeIndexImage(id,user.getId()); if(listThree.size()>0&&listThree!=null...
    所需jar包   https://download.csdn.net/my

    @Override
    public InputStream getExcelUserId(int id,User user) {
    // TODO Auto-generated method stub
    HSSFWorkbook book = new HSSFWorkbook();     
    //获取审核人数
    String useName=user.getUsername();//获取审核人员名称
    // 创建一个sheet,并命名
    HSSFSheet sheet = book.createSheet(useName);
    // 1.生成字体对象  
    HSSFFont font = book.createFont();  
    font.setFontHeightInPoints((short) 10);  
    font.setFontName("新宋体");  
    font.setColor(HSSFColor.BLUE.index);  
    font.setBoldweight((short) 0.8);  
      
    // 2.生成样式对象  
    HSSFCellStyle style = book.createCellStyle();  
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  
    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);  
    style.setFont(font); // 调用字体样式对象  

    style.setWrapText(true);  

    String [] headers={"一级标题","权重","二级标题","权重","三级标题","权重","评价要点","计分方法","数据来源","打分"};

                    //生成标题,第一行标题默认下标为:0,这里 sheet.createRow(0);创建第一行

    HSSFRow row = sheet.createRow(0); // 产生表格标题行    
    for (int j = 0; j < headers.length; j++) {  
        HSSFCell cell = row.createCell(j);  
        HSSFRichTextString text = new HSSFRichTextString(headers[j]);  
        cell.setCellValue(text);  
    }  
    //循环赋值,先创建所有单元格,要合并的单元个再创建完成后再获取单元格赋值并合并
            List<WebThreeIndex> listThree=webDao.getWebThreeIndexImage(id,user.getId());
    if(listThree.size()>0&&listThree!=null){
    for(int t=0;t<listThree.size();t++){
    WebThreeIndex webThreeIndex=listThree.get(t);
    HSSFRow row1 = sheet.createRow(t+1);//三级标题名称数据
    HSSFCell hc0 = row1.createCell(0);
     //这里是没有写入数据的单元个,如果后面想要获取此处单元格并赋值就必须给一个值
                                    hc0.setCellValue(new HSSFRichTextString(" "));
    HSSFCell hc1 = row1.createCell(1);
    hc1.setCellValue(new HSSFRichTextString(" "));   
    HSSFCell hc2 = row1.createCell(2);
    hc2.setCellValue(new HSSFRichTextString(" "));   
    HSSFCell hc3 = row1.createCell(3);
    hc3.setCellValue(new HSSFRichTextString(" "));   
    HSSFCell hc4 = row1.createCell(4);
    hc4.setCellValue(new HSSFRichTextString(webThreeIndex.getThree_index()));   
    HSSFCell hc5 = row1.createCell(5);
    hc5.setCellValue(new HSSFRichTextString(webThreeIndex.getWeight()));
    HSSFCell hc6 = row1.createCell(6);
    hc6.setCellValue(new HSSFRichTextString(webThreeIndex.getEvaluate()));
    HSSFCell hc7 = row1.createCell(7);
    hc7.setCellValue(new HSSFRichTextString(webThreeIndex.getScoring_method()));
    HSSFCell hc8 = row1.createCell(8);
    hc8.setCellValue(new HSSFRichTextString(webThreeIndex.getData_sources()));
    HSSFCell hc9 = row1.createCell(9);
    hc9.setCellStyle(style);
    hc9.setCellValue(new HSSFRichTextString(webThreeIndex.getSjscore()));
    }
    }
    //创建单元个结束
    //给一级标题和权重赋值并合并
                    List<WebOneIndex> listOne=webDao.getWebOneIndex();//获取一级标题数据
             if(listOne.size()>0&&listOne!=null){
    int n=1;
    for(int j=0;j<listOne.size();j++){
    WebOneIndex webOneIndex=listOne.get(j);
    List<WebThreeIndex> threeList=webDao.getWebThreeIndex(webOneIndex.getId());//获取三级级指标数据
    int lie=threeList.size();//获取一级指标所跨行数
    HSSFRow row5 = sheet.getRow(n);  
    if(j==0){//第一次是从下标为1开始,0是标题
    // CellRangeAddress(1, lie, 0, 0)) 开始行,结束行,开始列,结束列
    sheet.addMergedRegion(new CellRangeAddress(1, lie, 0, 0)); 
    HSSFCell cell0 = row5.getCell(0);// 获得第五行的第四个单元格 
    cell0.setCellStyle(style);  
    cell0.setCellValue(webOneIndex.getOne_index());// 给单元格赋值 
    sheet.addMergedRegion(new CellRangeAddress(1, lie, 1, 1)); 
    HSSFCell cell1 = row5.getCell(1);
    cell1.setCellStyle(style);
    cell1.setCellValue(webOneIndex.getWeight());
    n+=lie;
    }else{
    sheet.addMergedRegion(new CellRangeAddress(n, n+lie-1, 0, 0)); 
    HSSFCell cell0 = row5.getCell(0);// 获得第五行的第四个单元格 
    cell0.setCellStyle(style);
    cell0.setCellValue(webOneIndex.getOne_index());// 给单元格赋值 
    sheet.addMergedRegion(new CellRangeAddress(n, n+lie-1, 1, 1)); 
    HSSFCell cell1 = row5.getCell(1);
    cell1.setCellStyle(style);
    cell1.setCellValue(webOneIndex.getWeight());
    n+=lie;
    }
    }
    }
    List<WebTwoIndex> listTwo=webDao.getWebTwoIndex();
    if(listTwo.size()>0&&listTwo!=null){
    int n1=1;
    for(int j=0;j<listTwo.size();j++){
    WebTwoIndex WebTwoIndex=listTwo.get(j);
    List<WebThreeIndex> threeList=webDao.getWebThreeIndexTwoId(WebTwoIndex.getId());
    int lie=threeList.size();//获取一级指标所跨行数
    HSSFRow row5 = sheet.getRow(n1); // 获得工作薄的第五行 
    if(j==0){
    sheet.addMergedRegion(new CellRangeAddress(1, n1+lie-1, 2, 2)); 
    HSSFCell cell0 = row5.getCell(2);// 获得第五行的第四个单元格 
    cell0.setCellStyle(style);
    cell0.setCellValue(WebTwoIndex.getTwo_index());// 给单元格赋值 
    sheet.addMergedRegion(new CellRangeAddress(1, n1+lie-1, 3, 3)); 
    HSSFCell cell1 = row5.getCell(3);
    cell1.setCellStyle(style);
    cell1.setCellValue(WebTwoIndex.getWeight());
    n1+=lie;
    }else{
    sheet.addMergedRegion(new CellRangeAddress(n1, n1+lie-1, 2, 2)); 
    HSSFCell cell0 = row5.getCell(2);// 获得第五行的第四个单元格 
    cell0.setCellStyle(style);
    cell0.setCellValue(WebTwoIndex.getTwo_index());// 给单元格赋值 
    sheet.addMergedRegion(new CellRangeAddress(n1, n1+lie-1, 3, 3)); 
    HSSFCell cell1 = row5.getCell(3);
    cell1.setCellStyle(style);
    cell1.setCellValue(WebTwoIndex.getWeight());
    n1+=lie;
    }
    }
    }
    Long time = System.currentTimeMillis();
    String newFileName = String.valueOf(time)+".xlsx";//文件重命名,防止重复文件名
    Properties prop = new Properties();
    InputStream input = null;
    String fileP = "";
    try {
    input = this.getClass().getResourceAsStream("/apiconfig.properties");// new
    prop.load(input);
    fileP = prop.getProperty("exportExcel") ;
    } catch (Exception e) {
    fileP = "C:/workspacess/zjts/UploadFile/";
    }
    File dir=new File(fileP);    
    //判断文件是否上传,如果上传的话将会创建该目录   
    if(!dir.exists()){    
    dir.mkdirs(); //创建该目录   
    }
    File file = new File(fileP + newFileName);
    try {
    OutputStream output = new FileOutputStream(file);
    book.write(output);
    output.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    // 返回结果的文件输入文件流,到内存里方便下载
    InputStream input1 = null;
    try {
    input1 = new FileInputStream(file);
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    }
    //删除生成的文件,减少服务器空间
    if(file.exists()){
    // file.delete();
    }
    return input1;
    }

    //上传样式



    展开全文
  • Java合并图片

    千次阅读 2019-03-18 11:28:44
    Java合并图片 1、以第一个图片尺寸为准,画上第二个图片 2、取两图合并后的最大边框 工具代码 /** * 合并两个图片 * @param img1Path 图片1地址 * @param img2Path 图片2地址 * @param x 图片2左上点...
  • 主要介绍了Java实现合并两个有序序列算法,简单描述了序列合并算法的原理与java合并有序序列的具体操作步骤及相关实现技巧,需要的朋友可以参考下
  • 到出的数据中,如何合并相同的数据,格式如下: ![图片说明](https://img-ask.csdn.net/upload/201508/03/1438600476_655381.png)这段方法具体怎么写,请帮忙指教!
  • java 合并两个列表Merging two lists in Java is often a useful operation. These lists can be ArrayLists or LinkedLists. 合并Java中的两个列表通常是有用的操作。 这些列表可以是ArrayLists或LinkedLists。 ...
  • Java 文件合并

    千次阅读 2013-04-24 14:48:37
    最近公司项目需要将一个大文件分割成若干个小文件进行处理,处理完毕之后将所有的小文件合并为一个文件。 示例代码 package com.xx.test; import java.io.File; import java.io.FileInputStream; import java...
  • java合并xml1

    2012-12-15 20:33:51
    java合并xml1java合并xml1
  • JAVA List合并集合

    千次阅读 2019-08-16 17:40:34
    两个集合保存的类型如果相同,可以调用addAll()方法合并成一个集合。
  • java poi 合并单元格

    万次阅读 多人点赞 2017-03-29 16:39:01
    poi 合并 单元格 XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet(); //这个就是合并单元格 ...//比如我要合并 第二到第四的 第六列到第八列 sheet.addMergedRegion(new CellRang
  • java 数组的合并

    2010-06-18 16:44:23
    java 数组的合并 java 数组的合并 java 数组的合并
  • java处理日期合并

    2014-03-25 10:09:13
    java处理日期合并
  • Java导出Excel表合并行、合并列

    千次阅读 2020-08-25 09:34:46
    //合并行 String[] rowKeys = {"NAME","DETAIL","Z_NAME","Z_DETAIL","",""};//需要合并列名,与key对应,不需要合并的列对应的数组位置列名为空字符串即可跳过 String[] rowValue = {"NAME","DETAIL","Z_NAME","Z...
  • java 数组合并

    千次阅读 2016-12-15 18:11:10
    import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Main { public static void main(String args[]) { String a[] = { "A", "E", "I" }; String b[] = {
  • Java合并多个文件

    万次阅读 2016-10-28 17:13:02
    Java 中如何高效合并文件
  • 主要介绍了Java导出excel时合并同一列中相同内容的,需要的朋友可以参考下
  • Java List合并去重

    万次阅读 多人点赞 2013-02-21 16:28:30
    有List A和B,A、B中元素都是可保证没有重复的,现要合并A、B得到新的List C,要求C中不能有重复元素 我的反应: 看了下Java List、Collection的API,没找到合适的于是乎,遍历A、B中元素个数较少的,往另一个...
  • java实现合并排序算法

    千次阅读 2018-04-06 17:43:39
     合并排序是分治法当中一个经典的排序算法,它通过将规模为n的原始问题分解为n/2,然后得到各自的解后,在合并两个子问题的解,最终得到原始问题的解。合并排序属于稳定排序,在排序过程中,如果遇到Ai==Aj,假设i ...
  • java excel poi合并单元格
  • 主要给大家介绍了关于java实现合并单元格的同时并导出excel的相关资料,文中先进行了简单的介绍,之后给出了详细的示例代码,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
  • java集合合并相同元素

    2017-08-20 00:26:01
    现在需要把集合中id属性相同的元素合并成一个元素,就是像写sql一样,按id把数据分组,把orderCount和profit相加,orderCount和profit属性是int类型的,name属性不用管,因为每个id对应的name属性都不一样。...
  • Java代码合并工具

    2018-11-06 21:22:17
    Python编写的Windows小工具,内含源代码及打包好的EXE程序。相关文章点这里</a>
  • java poi Excel循环合并行

    千次阅读 2014-01-24 15:49:57
    //Java poi 实现循环合并行,还是第一次遇到这种问题//在网上查了很多资料,都不是自己想要的//以下为自己研究后,写的一点东西,给大家分享,希望对大家能有思路上的启发,也希望大家能提出宝贵意见,相互学习,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 365,296
精华内容 146,118
关键字:

java行合并

java 订阅