TEL:400-8793-956
当前位置:程序、服务器

从Excel删除重复记录并复制到Java中的其他Excel文件

提问者: 近期获赞: 浏览人数: 发布时间:2020-12-20 15:21:30

 问:我想使用Java将重复记录从一个Excel文件移动到另一个Excel文件。

 
答:在这里,下面的代码可以将唯一记录从Writesheet.xlsx复制到WritesheetNew.xlsx文件中。Writesheet.xlsx可以包含重复记录,因此可以将唯一记录复制到新的WritesheetNew.xlsx文件中。
 
   包com.evon;
    导入java.io.File;
    导入java.io.FileInputStream;
    导入java.io.FileOutputStream;
    导入java.util.HashSet;
    导入java.util.Iterator;
    导入java.util.Map;
    导入java.util.Set;
    导入java.util.TreeMap;
    导入java.util.TreeSet;
    导入org.apache.poi.ss.usermodel.Cell;
    导入org.apache.poi.ss.usermodel.Row;
    导入org.apache.poi.xssf.usermodel.XSSFRow;
    导入org.apache.poi.xssf.usermodel.XSSFSheet;
    导入org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 
公共类ReadWriteExcel {
 
 
 
公共静态无效WriteSheet()引发异常
{
            //创建空白工作簿
XSSFWorkbook工作簿=新的XSSFWorkbook();
            //创建一张空白纸
            XSSFSheet电子表格= workbook.createSheet(“ Employee Details”);
            //创建行对象
            XSSFR行;
            //此数据需要写入(Object [])
            Map <String,Object []> empinfo = new TreeMap();
            empinfo.put(“ 1”,new Object [] {“ EMP NAME”}));
            empinfo.put(“ 2”,new Object [] {“ Manish”});
            empinfo.put(“ 3”,new Object [] {“ Manish”});
            empinfo.put(“ 4”,new Object [] {“ Namita”});
            empinfo.put(“ 7”,new Object [] {“ Namita”});
            empinfo.put(“ 5”,new Object [] {“ Akhilesh”});
            empinfo.put(“ 6”,new Object [] {“ Neelam”});
            //遍历数据并写入工作表
            设置<String> keyid = empinfo.keySet();
            int rowid = 0;
            对于(字符串键:keyid)
            {
                行=电子表格.createRow(rowid ++);
                对象[] objectArr = empinfo.get(key);
                int cellid = 0;
                对于(Object obj:objectArr)
                {
                    单元格单元格= row.createCell(cellid ++);
                    cell.setCellValue((String)obj);
                }
            }
            //在文件系统中写入工作簿
FileOutputStream输出=新FileOutputStream(新File(“ / home / manish / Desktop / Writesheet.xlsx”));
            workbook.write(out);
            out.close();
        }
 
 
 
公共静态无效CheckDuplicate(文件文件)引发异常
        {
            组 newReordsList =新的树集();
            FileInputStream fis =新的FileInputStream(file);
            XSSFWorkbook工作簿=新的XSSFWorkbook(fis);
            XSSFSheet电子表格= workbook.getSheetAt(0);
            XSSFR行;
            迭代器<行> rowIterator =电子表格.iterator();
            同时(rowIterator.hasNext())
            {
                row =(XSSFRow)rowIterator.next();
                //System.out.println("----->"+spreadsheet.get);
                Iterator <Cell> cellIterator = row.cellIterator();
                细胞
而(cellIterator.hasNext())
                {
 
 
 
cell = cellIterator.next();
 
 
 
if(cell.getRowIndex()== 0)
继续;
 
 
 
开关(cell.getCellType())
{
案例Cell.CELL_TYPE_STRING:
//System.out.print(cell.getStringCellValue()+“ \ t \ t”);
newReordsList.add(cell.getStringCellValue());
                        打破;
}
 
 
 
}
 
 
 
}
fis.close();
copyInExcel(newReordsList);
 
 
 
}
 
 
 
公共静态无效copyInExcel(Set 记录)引发异常
        {
                    //创建空白工作簿
XSSFWorkbook工作簿=新的XSSFWorkbook();
                    //创建一张空白纸
XSSFSheet电子表格= workbook.createSheet(“新的员工详细信息”);
//创建行对象
XSSFR行; 
 
int rowid = 0;
int cellid = 0;
对于(字符串记录:记录)
{
行=电子表格.createRow(rowid ++);
 
 
 
单元格单元格= row.createCell(cellid);
cell.setCellValue(record);
 
 
 
}
//在文件系统中写入工作簿
FileOutputStream out =新FileOutputStream(新File(“ / home / manish / Desktop / WritesheetNew.xlsx”));
workbook.write(out);
out.close();
}
公共静态void main(String [] args){
 
 
 
尝试{
//编写Excel工作表
WriteSheet();
 
 
 
//复制Excel工作表
CheckDuplicate(new File(“ / home / manish / Desktop / Writesheet.xlsx”));;
}
catch(Exception e){System.out.println(e);}
 
 
 
}
 
 
 
}
上一篇: 部署网站应用程序目录时,Tomcat应用程序服务器挂起
下一篇: 哪种Web使用最佳的Photoshop抗锯齿设置?