The instance code for excel is read and exported through jxl.jar

  • 2020-04-01 01:28:10
  • OfStack


 package export.excel;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import export.vo.PersonVo;

public class ExportExcel {

 
 public List<PersonVo> personVoList;

 public ExportExcel()
 {
  initdata();
 }

 
 public void initdata()
 {
  //Random function
  Random random = new Random(); 
  personVoList = new ArrayList<PersonVo>();
  //Initialize 100 people into the set
  PersonVo personVo = null;
  for (int i = 0; i < 100; i++)
  {
   personVo = new PersonVo();
   personVo.setId("" + i);
   personVo.setName(" passers-by " + i);
   if (i%2==0)
   {
    personVo.setSex(" male ");
   }
   else
   {
    personVo.setSex(" female ");
   }
   //Take a random age within 100 years
   personVo.setAge("" + random.nextInt(100));
   personVoList.add(personVo);
  }
 }

 
 public void exportPerson(String exportName)
 {
  try{
   File excelFile = new File(exportName + "Temp.xls");
   //The file format
   WritableCellFormat format = new WritableCellFormat();
   //X  On the left
   format.setAlignment(Alignment.RIGHT);
   //Y on the top
   format.setVerticalAlignment(VerticalAlignment.TOP);

   //Create a working file
   WritableWorkbook writableWorkbook = Workbook.createWorkbook(excelFile);
   //Create a workbook
   WritableSheet sheet1 = writableWorkbook.createSheet(" Personal information list ", 0);
   //Creates the number of rows and sets the width of the row
   sheet1.setColumnView(0, 10);
   sheet1.setColumnView(1, 10);
   sheet1.setColumnView(2, 10);
   sheet1.setColumnView(3, 10);
   //Set the value of the row
   sheet1.addCell(new Label(0, 0, "ID", format));
   sheet1.addCell(new Label(1, 0, " The name ", format));
   sheet1.addCell(new Label(2, 0, " gender ", format));
   sheet1.addCell(new Label(3, 0, " age ", format));

   //Write the collection to excel
   int rowNum = 1;
   for (PersonVo bean : personVoList)
   {
    int colspanNum = 0;
    sheet1.addCell(new Label(colspanNum, rowNum, bean.getId(), format));
    sheet1.addCell(new Label(colspanNum++, rowNum, bean.getName(), format));
    sheet1.addCell(new Label(colspanNum++, rowNum, bean.getSex(), format));
    sheet1.addCell(new Label(colspanNum++, rowNum, bean.getAge(), format));

    rowNum++;
   }

   writableWorkbook.write();
   writableWorkbook.close();
//    If you downloaded it over the Internet, write it down
//            super.getHttpServletResponse().setContentType("application/x-msdownload");
//            String encodetittle = new String(excelName.getBytes("GBK"), "ISO-8859-1");
//            super.getHttpServletResponse().addHeader("Content-Disposition","attachment;filename="+encodetittle+".xls");
            FileInputStream finput = new FileInputStream(excelFile);
//            OutputStream output = super.getHttpServletResponse().getOutputStream();
            File fout = new File(exportName + ".xls");
            OutputStream output = new FileOutputStream(fout);
            BufferedInputStream buffin = new BufferedInputStream(finput);
            BufferedOutputStream buffout = new BufferedOutputStream(output);
            byte[] buffer = new byte[4096];
            int count = 0;
            while ((count = buffin.read(buffer, 0, buffer.length)) > 0) {
                buffout.write(buffer, 0, count);
            }
            buffin.close();
            buffout.close();
            finput.close();
            output.close();
            excelFile.delete();
  }
  catch (Exception e) {
   e.printStackTrace();
  }
  finally
  {
   System.out.println(" Complete the export operation ");
  }

 }
 
 public void importPerson(String importExcel)
 {
  try{
   File excelFile = new File(importExcel+".xls");
   //Create a working file
   Workbook workbook = Workbook.getWorkbook(excelFile);
   //Get the first workbook there are two ways to get the sheet, one for the name, and one for the index, starting at zero
   Sheet sheet = workbook.getSheet(0);
   //The total number of records
   int allRow = sheet.getRows();
   int allColspan = sheet.getColumns();
   System.out.println(allRow);
   System.out.println(allColspan);
   //Take the data
   for (int i=0; i<allRow; i++)
   {
    //Fetch the values for each column
    for (int j=0; j<allColspan; j++)
    {
//        Sheet. GetCell (column number, row number);
     Cell cell = sheet.getCell(j, i);
     //Print out the value of the column
     System.out.print(cell.getContents() + "t");
    }
    System.out.println();
   }
   //Shut down
   workbook.close();
  }catch (Exception e) {
   e.printStackTrace();
  }
  finally
  {
   System.out.println(" Complete the import operation ");
  }
 }

 
 public static void main(String[] args) {

  ExportExcel exportExcel = new ExportExcel();
  //Set the path
  String srcPath = "C:/Quarantine/PersonVo";
//  export
//  exportExcel.exportPerson(srcPath);
  //read
  exportExcel.importPerson(srcPath);
 }
}
 


Related articles: