In this article, I am going to explain how to merge two excel files. Some time we may need to do excel merging programmitically. If you want to do any modification by logic in merging, you can do using this program easily. To implement this program you need to download Apache POI library and have it in your build path (copy POI jars to lib folder).
There is no direct method to merge excel files using java. You have need to follow the below flow.
Click Here To Download Eclipse Project

Flow of the program

  1. Get Excel files
  2. Get Work Books of those excel files
  3. Get sheets to be merged in those excel files
  4. Read every row and add it to other sheet
  5. Read every cell and add it to the row
  6. Write merged workbook to output file

Java Code

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
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.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class MergeExcel {

    public static void main(String[] args) {
        try {
            // excel files
            FileInputStream excellFile1 = new FileInputStream(new File(
            FileInputStream excellFile2 = new FileInputStream(new File(

            // Create Workbook instance holding reference to .xlsx file
            XSSFWorkbook workbook1 = new XSSFWorkbook(excellFile1);
            XSSFWorkbook workbook2 = new XSSFWorkbook(excellFile2);

            // Get first/desired sheet from the workbook
            XSSFSheet sheet1 = workbook1.getSheetAt(0);
            XSSFSheet sheet2 = workbook2.getSheetAt(0);

            // add sheet2 to sheet1
            addSheet(sheet1, sheet2);

            // save merged file
            File mergedFile = new File(
            if (!mergedFile.exists()) {
            FileOutputStream out = new FileOutputStream(mergedFile);
                    .println("Files were merged succussfully");
        } catch (Exception e) {


    public static void addSheet(XSSFSheet mergedSheet, XSSFSheet sheet) {
        // map for cell styles
        Map<Integer, XSSFCellStyle> styleMap = new HashMap<Integer, XSSFCellStyle>();
        // This parameter is for appending sheet rows to mergedSheet in the end
        int len = mergedSheet.getLastRowNum();
        for (int j = sheet.getFirstRowNum(); j <= sheet.getLastRowNum(); j++) {

            XSSFRow row = sheet.getRow(j);
            XSSFRow mrow = mergedSheet.createRow(len + j + 1);

            for (int k = row.getFirstCellNum(); k < row.getLastCellNum(); k++) {
                XSSFCell cell = row.getCell(k);
                XSSFCell mcell = mrow.createCell(k);

                if (cell.getSheet().getWorkbook() == mcell.getSheet()
                        .getWorkbook()) {
                } else {
                    int stHashCode = cell.getCellStyle().hashCode();
                    XSSFCellStyle newCellStyle = styleMap.get(stHashCode);
                    if (newCellStyle == null) {
                        newCellStyle = mcell.getSheet().getWorkbook()
                        styleMap.put(stHashCode, newCellStyle);

                switch (cell.getCellType()) {
                case HSSFCell.CELL_TYPE_FORMULA:
                case HSSFCell.CELL_TYPE_NUMERIC:
                case HSSFCell.CELL_TYPE_STRING:
                case HSSFCell.CELL_TYPE_BLANK:
                case HSSFCell.CELL_TYPE_BOOLEAN:
                case HSSFCell.CELL_TYPE_ERROR:


  1. Hi,
    Can we merge .xlsx and .xls file into one file??

  2. Does this merge tabels based on common key?
    e.g. Suppose this:
    FirstTable.xls which contains columns as: UserID, FirstName, LastName
    SecondTable.xls which contains columns as: UserID, Description
    Now my question is that does your program merge these 2 tables based on UserID or not?

  3. Hi,
    Nice Post for merge Excel Sheet. I think everyone can not write JAVA Code for Merging Excel Sheet. You Can use synkronizer Excel Tool for Update, Merge and compare excel sheet files.


  4. It merges the files but not all headers in row 1. It reads first sheet and put it in output file and then it read another sheet and put the content from second below the first sheet content in the output file. Cn you please help me so that I can have all the content from left to right

  5. Thanks for sharing This Blog on How to Merge Excel files using java. it's really useful and information blog post. I Think you can also use Synkronizer Excel tool for merge multiple excel file. using this tool, No need to write any JAVA or VBA script. Keep Sharing Good Content on your blog.

  6. Thanks for sharing.
    I was stuck but finally got solution from your blog

  7. Can you please give solution to merge multiple excel sheets
    Thanks in advance

  8. Its giving null pointer exception. plz help

  9. Good blog.Are you also searching for Help With My Nursing Paper? we are the best solution for you. We are best known for delivering nursing writing services to students without having to break the bank.

  10. I want to always read your blogs. I love them Are you also searching for Nursing Pico Writing Help? we are the best solution for you. We are best known for delivering Nursing Pico writing services to students without having to break the bank

  11. Of course, your article is good enough, but I thought it would be much better to see professional photos and videos together. There are articles and photos on these topics on my homepage, so please visit and share your opinions. keonhacai

  12. I am sure this article has touched all the internet people, its really really nice post on building up new webpage. Also, visit my site ํ† ํ† ์‚ฌ์ดํŠธ

  13. Wow, fantastic weblog structure! How long have you evver been running a blog for?
    you made blogging look easy. The total glance of our web site is magnificent, as well as the content!

  14. I actually can´t help activities here. Thank you for time properly spent looking over this article. I can´t bear in mind the last moment I´ve bookmarked
    anything. ์‚ฌ์„คํ† ํ† 

  15. Thank you for any other informative blog. Where else may just I am getting that kind of information written in such a perfect method? I have a mission that I’m simply now working on, and I have been on the glance out for such info. ์•ˆ์ „๋†€์ดํ„ฐ์ถ”์ฒœ

  16. Hey what a brilliant post I have come across and believe me I have been searching out for this similar kind of post for past a week and hardly came across this. Thank you very much and will look for more postings from you. ๋จนํŠ€๊ฒ€์ฆ and I am very happy to see your post just in time and it was a great help. Thank you ! Leave your blog address below. Please visit me anytime!

  17. Succeed! It could be one of the most useful blogs we have ever come across on the subject. Excellent info! I’m also an expert in this topic so I can understand your effort very well. Thanks for the huge help. ๋จนํŠ€๊ฒ€์ฆ์‚ฌ์ดํŠธ

  18. Your internet site really feels a great deal of expert touch. I'm still an amateur, so I wish to speak to a professional. My writing is still unsatisfactory, however I desire you to evaluate me by my writing. Please do that for us. ๋ฐ”์นด๋ผ์‚ฌ์ดํŠธ

  19. In my opinion, the item you posted is perfect for being selected as the best item of the year. You seem to be a genius to combine ๋จนํŠ€์‚ฌ์ดํŠธ and . Please think of more new items in the future!

  20. Excellent read, I just passed this onto a friend who was doing a little research on that. And he actually bought me lunch as I found it for him smile Therefore let me rephrase that: Thank you for lunch. ๋ฉ”์ด์ €์‚ฌ์ดํŠธ

  21. Why couldn't I have the same or similar opinions as you? T^T I hope you also visit my blog and give us a good opinion.์˜จ๋ผ์ธ์Šฌ๋กฏ


  22. Hello there! Quick question that’s completely off topic.
    Do you know how to make your site mobile friendly? My website looks weird when viewing from my iphone.
    I’m trying to find a template or plugin that might
    be able to resolve this issue. If you have any recommendations, please share.
    Thank you!


  23. I think your writing will help me, can you come to me once and help? My site is "๋ฉ”๊ฐ€์Šฌ๋กฏ

  24. I was looking for another article by chance and found your article์Šฌ๋กฏ์‚ฌ์ดํŠธ I am writing on this topic, so I think it will help a lot. I leave my blog address below. Please visit once.

  25. You made some good points there. I did a Google search about the topic and found most people will believe your blog. ๋ฉ”๋ฆฌํŠธ์นด์ง€๋…ธ

  26. This is the perfect trแปฑc tuyแบฟn It helped me a lot. If you have time, I hope you come to my site and share your opinions. Have a nice day.

  27. An outstanding post! This guide gives me all the info to get started with JavaScript module syntax. I appreciate every step you shared. Feel free to visit my website;


  28. This is an excellent post I seen thanks to share it. It is really what I wanted to see hope in future you will continue for sharing such a excellent post Feel free to visit my website;

  29. Good day! This post could not be written any better! Reading this post reminds me of my previous room mate! He always kept chatting about this. I will forward this page to him. Pretty sure he will have a good read. Thanks for sharing. Feel free to visit my website;

  30. Hey, I am so thrilled I found your blog, I am here now and could just like to say thank for a tremendous post and all round interesting website. Please do keep up the great work. I cannot be without visiting your blog again and again. Feel free to visit my website;

  31. Hello ! I am the one who writes posts on these topics์นด์ง€๋…ธ์‚ฌ์ดํŠธ I would like to write an article based on your article. When can I ask for a review?

  32. That's a really impressive new idea! ๋ฉ”์ด์ €ํ† ํ† ์‚ฌ์ดํŠธ์ถ”์ฒœ It touched me a lot. I would love to hear your opinion on my site. Please come to the site I run once and leave a comment. Thank you.

  33. Pretty! This has been an incredibly wonderful article. Thank you for supplying this information. ํ† ํ† 

  34. whoah this blog is wonderful i really like studying your articles.
    Keep up the good work! You already know, many persons are searching around for
    this information, you can aid them greatly.
    ๋ฉ”์ด์ €ํ† ํ† ์‚ฌ์ดํŠธ

  35. This comment has been removed by the author.

  36. I got this site from my friend who shared with me concerning this
    website and now this time I am visiting this website and reading very informative articles or reviews here.

  37. I'm writing a paper on the subject of your article. I feel like I've found a very precious treasure. Thanks to you, I think I can finish my thesis safely. Please come to my blog and read my post related to yours. ๋จนํŠ€๊ฒ€์ฆ์—…์ฒด



Popular Posts