Rumah > Java > javaTutorial > Apakah kaedah pengendalian asas Java WorkBook pada Excel?

Apakah kaedah pengendalian asas Java WorkBook pada Excel?

WBOY
Lepaskan: 2023-05-02 16:40:07
ke hadapan
1660 orang telah melayarinya

1. Exception java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException

Penyelesaian: Versi pakej balang berkaitan yang digunakan untuk poi mestilah sama! ! ! ! !

2. Pakej balang yang digunakan oleh maven Jika maven tidak digunakan, gunakan poi-3.9.jar dan poi-ooxml-3.9.jar (ini digunakan terutamanya untuk Excel2007 dan versi yang lebih baru). Pakej balang akan melakukan ()

<dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi</artifactId>
     <version>3.9</version>
</dependency>
<dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi-ooxml</artifactId>
     <version>3.9</version>
</dependency>
Salin selepas log masuk

3 Java import Excel

Muat naik Excel dahulu

//上传Excel
@RequestMapping("/uploadExcel")
public boolean uploadExcel(@RequestParam MultipartFile file,HttpServletRequest request) throws IOException {
    if(!file.isEmpty()){
        String filePath = file.getOriginalFilename();
        //windows
        String savePath = request.getSession().getServletContext().getRealPath(filePath);
        //linux
        //String savePath = "/home/odcuser/webapps/file";
        File targetFile = new File(savePath);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }
 
        file.transferTo(targetFile);
        return true;
    }
    return false;
}
Salin selepas log masuk

dan kemudian membaca kandungan dalam Excel

public static void readExcel() throws Exception{
	InputStream is = new FileInputStream(new File(fileName));
	Workbook hssfWorkbook = null;
	if (fileName.endsWith("xlsx")){
		hssfWorkbook = new XSSFWorkbook(is);//Excel 2007
	}else if (fileName.endsWith("xls")){
		hssfWorkbook = new HSSFWorkbook(is);//Excel 2003
	}
	// HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
	// XSSFWorkbook hssfWorkbook = new XSSFWorkbook(is);
	User student = null;
	List<User> list = new ArrayList<User>();
	// 循环工作表Sheet
	for (int numSheet = 0; numSheet <hssfWorkbook.getNumberOfSheets(); numSheet++) {
		//HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
		Sheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
		if (hssfSheet == null) {
			continue;
		}
		// 循环行Row
		for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
			//HSSFRow hssfRow = hssfSheet.getRow(rowNum);
			Row hssfRow = hssfSheet.getRow(rowNum);
			if (hssfRow != null) {
				student = new User();
				//HSSFCell name = hssfRow.getCell(0);
				//HSSFCell pwd = hssfRow.getCell(1);
				Cell name = hssfRow.getCell(0);
				Cell pwd = hssfRow.getCell(1);
				//这里是自己的逻辑
				student.setUserName(name.toString());
				student.setPassword(pwd.toString());
				list.add(student);
			}
		}
	}
}
Salin selepas log masuk

4. . Eksport Excel

//创建Excel
@RequestMapping("/createExcel")
public String createExcel(HttpServletResponse response) throws IOException {
 
	//创建HSSFWorkbook对象(excel的文档对象)
	HSSFWorkbook wb = new HSSFWorkbook();
	//建立新的sheet对象(excel的表单)
	HSSFSheet sheet=wb.createSheet("成绩表");
	//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
	HSSFRow row1=sheet.createRow(0);
	//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
	HSSFCell cell=row1.createCell(0);
	//设置单元格内容
	cell.setCellValue("学员考试成绩一览表");
	//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
	sheet.addMergedRegion(new CellRangeAddress(0,0,0,3));
	//在sheet里创建第二行
	HSSFRow row2=sheet.createRow(1);
	//创建单元格并设置单元格内容
	row2.createCell(0).setCellValue("姓名");
	row2.createCell(1).setCellValue("班级");
	row2.createCell(2).setCellValue("笔试成绩");
	row2.createCell(3).setCellValue("机试成绩");
	//在sheet里创建第三行
	HSSFRow row3=sheet.createRow(2);
	row3.createCell(0).setCellValue("李明");
	row3.createCell(1).setCellValue("As178");
	row3.createCell(2).setCellValue(87);
	row3.createCell(3).setCellValue(78);
	//.....省略部分代码
	//输出Excel文件
	OutputStream output=response.getOutputStream();
	response.reset();
	response.setHeader("Content-disposition", "attachment; filename=details.xls");
	response.setContentType("application/msexcel");
	wb.write(output);
	output.close();
	return null;
}
Salin selepas log masuk

Penjelasan tambahan tentang masalah kod bercelaru

1. Nama fail bercelaru (saya dapati bahawa selagi nama fail bercelaru diselesaikan, aksara bercelaru lain juga akan diselesaikan) .setHeader("Content-disposition", "attachment; filename = Chinese. ("Content-disposition", "attachment; filename="+toUtf8String("Chinese.xls"));

Apabila saya menyemak dalam talian , ia berkata

Apa yang saya ingin katakan hari ini ialah Apabila membuat lembaran kerja, menggunakan bahasa Cina sebagai nama fail dan nama lembaran kerja akan menyebabkan aksara bercelaru Pertama, mari kita gunakan bahasa Cina sebagai nama lembaran kerja lembaran kerja secara amnya adalah seperti berikut:

Buku kerja HSSFWorkbook = new HSSFWorkbook( ; sheetName ialah aksara Cina, jadi aksara bercelaru akan muncul. Penyelesaiannya adalah seperti berikut:

HSSFSheet sheet= workbook.createSheet() ;

buku kerja.setSheetName(0, sheetName,(short)1) ; //Di sini (pendek) 1 ialah kunci untuk menyelesaikan aksara Cina yang kacau dan parameter pertama ialah nombor indeks lembaran kerja.

Tetapi saya mendapati bahawa tiada kaedah sedemikian sama sekali saya hanya perlu menukar aksara yang bercelaru dalam nama fail, dan aksara yang bercelaru yang lain akan diselesaikan secara semula jadi! ! !

Atas ialah kandungan terperinci Apakah kaedah pengendalian asas Java WorkBook pada Excel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan