返回顶部
首页 > 资讯 > 后端开发 > Python >Java WorkBook对Excel的基本操作方法
  • 572
分享到

Java WorkBook对Excel的基本操作方法

Java WorkBook Excel操作Java操作Excel 2023-05-14 05:05:15 572人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

1、异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFORMatException   解决方法:使用

1、异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFORMatException

  解决方法:使用的poi的相关jar包一定版本一定要相同!!!!!

2、Maven所使用jar包,没有使用maven的话,就用poi-3.9.jar和poi-ooxml-3.9.jar(这个主要是用于excel2007以后的版本)两个jar包就行()

<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>

3、java导入Excel

   先上传Excel

//上传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;
}

在读取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);
			}
		}
	}
}

4、导出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;
}

补充说明乱码问题

  1、文件名乱码(我发现只要解决了文件名乱码,其他乱码也会跟着解决)response.setHeader("Content-disposition", "attachment; filename=中文.xls");

  这个方法可以当做一个公用方法来使用,以后有乱码的都可以调用此方法

public static String toUtf8String(String s){ 
     StringBuffer sb = new StringBuffer(); 
       for (int i=0;i<s.length();i++){ 
          char c = s.charAt(i); 
          if (c >= 0 && c <= 255){sb.append(c);} 
        else{ 
        byte[] b; 
         try { b = Character.toString(c).getBytes("utf-8");} 
         catch (Exception ex) { 
             System.out.println(ex); 
                  b = new byte[0]; 
         } 
            for (int j = 0; j < b.length; j++) { 
             int k = b[j]; 
              if (k < 0) k += 256; 
              sb.append("%" + Integer.toHexString(k).toUpperCase()); 
              } 
     } 
  } 
  return sb.toString(); 
}

调用的时候,response.setHeader("Content-disposition", "attachment; filename="+toUtf8String("中文.xls"));

 我上网查的时候,网上是说

 今天要说的是在创建工作表时,用中文做文件名和工作表名会出现乱码的问题,先说以中文作为工作表名,大家创建工作表的代码一般如下:

    HSSFWorkbook workbook = new HSSFWorkbook();//创建EXCEL文件

        HSSFSheet  sheet= workbook.createSheet(sheetName);    //创建工作表

    这样在用英文名作为工作表名是没问题的,但如果sheetName是中文字符,就会出现乱码,解决的方法如下代码:

    HSSFSheet  sheet= workbook.createSheet();

    workbook.setSheetName(0, sheetName,(short)1); //这里(short)1是解决中文乱码的关键;而第一个参数是工作表的索引号。       

但是我发现根本没有这个方法,只需要改了文件名的乱码,其他乱码自然就解决了!!!

到此这篇关于Java WorkBook对Excel的基本操作的文章就介绍到这了,更多相关Java WorkBook Excel操作内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java WorkBook对Excel的基本操作方法

本文链接: https://lsjlt.com/news/202762.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java WorkBook对Excel的基本操作方法
    1、异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException   解决方法:使用...
    99+
    2023-05-14
    Java WorkBook Excel操作 Java操作Excel
  • Java WorkBook对Excel的基本操作方法有哪些
    这篇文章主要介绍了Java WorkBook对Excel的基本操作方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java WorkBook对Excel的基本操作方法有哪些文章都会有...
    99+
    2023-07-05
  • 关于Python操作Excel的基本方法
    目录写入Excel1. 安装第三方模块2. 编写代码读取Excel1. 安装第三方模块小结写入Excel 1. 安装第三方模块 修改excel可以使用xlwt模块 pip insta...
    99+
    2023-05-18
    Python Excel Python操作Excel
  • python Workbook对象的使用方法
    这篇文章主要讲解了“python Workbook对象的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python Workbook对象的使用方法”吧!说明要创建新的Excel文档,...
    99+
    2023-06-20
  • Java数组的基本操作方法整理
    目录1. 数组的定义2. 数组的声明、创建3. 内存分析4. 数组的三种初始化5. 数组的四个基本特点6. 数组边界7. 数组的使用7.1 普通For循环7.2 For-Each循环...
    99+
    2024-04-02
  • java反射之方法反射的基本操作方法
    本文接上文“java反射之获取类的信息方法(推荐)”,利用反射(invoke)来获取一个类中的方法来执行。1、定义一个类,包含三个名称相同,参数不同的方法class A{ public void print(){ System.ou...
    99+
    2023-05-31
    java 反射 方法
  • Java 将Excel转为UOS的操作方法
    目录【导入jar包】【Excel转UOS】以.uos为后缀的文件,表示Uniform Office Spreadsheet文件,是一种国产的办公文件格式,该格式以统一办公格式(UOF...
    99+
    2024-04-02
  • python对kafka的基本操作
    from kafka import KafkaProducerfrom kafka import KafkaConsumerfrom kafka.structs import TopicPartitionimport time boots...
    99+
    2023-01-31
    操作 python kafka
  • Java如何对文件进行基本操作
    这篇文章给大家分享的是有关Java如何对文件进行基本操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。File文件类java.io.File是文件和目录的重要类(JDK6及以前是唯一)目录也使用File类进行表示...
    99+
    2023-06-20
  • 简单易学:掌握pandas读取Excel文件的基本操作方法
    掌握pandas读取Excel文件的基本操作方法 在数据分析和处理中,Excel文件是一种常见的数据来源,Pandas是Python中一个强大的数据分析处理库,可以快速高效地读取Excel文件并进行数据清洗、处理和分析。本文将介...
    99+
    2024-01-19
    Excel Pandas 操作
  • 基本操作mysql数据库的方法
    下文主要给大家带来基本操作mysql数据库的方法,希望这些内容能够带给大家实际用处,这也是我编辑基本操作mysql数据库的方法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。数据库的基本操作:Sql...
    99+
    2024-04-02
  • 操作mysql数据表的基本方法
    本文主要给大家介绍操作mysql数据表的基本方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下操作mysql数据表的基本方法吧。1.创建数据表cre...
    99+
    2024-04-02
  • LINQ基本操作的方法有哪些
    这篇文章主要讲解了“LINQ基本操作的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ基本操作的方法有哪些”吧!LINQ基本操作学习1.我首先创建一个表,名字为:userin...
    99+
    2023-06-17
  • Docker的基本操作方法有哪些
    这篇文章主要讲解了“Docker的基本操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker的基本操作方法有哪些”吧!安装Dockerroot@jaking-virtual...
    99+
    2023-06-27
  • Java操作excel的三种常见方法实例
    目录前言一、Apache poi1.1 首先添加依赖1.2 导出excel1.2.1 HSSF方式导出(.xls方式)1.2.2 XSSF方式导出(.xlsx)1.2.3、SXSSF...
    99+
    2024-04-02
  • C#调用Excel的操作方法
    本篇内容主要讲解“C#调用Excel的操作方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#调用Excel的操作方法”吧!C# 操作Excel之Excel操作方法调用1.插入图片和线调用Pi...
    99+
    2023-06-17
  • JAVA二叉树的基本操作
    目录记录二叉树的基本操作DEMO1、创建一个二叉树类2、然后创建二叉树的节点记录二叉树的基本操作DEMO 1、创建一个二叉树类 这里约束了泛型只能为实现了Comparable这个接口的类型。 public class BinaryT...
    99+
    2021-12-08
    JAVA二叉树的操作 JAVA二叉树
  • ElasticSearch基本操作方法有哪些
    这篇文章主要讲解了“ElasticSearch基本操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ElasticSearch基本操作方法有哪些”吧!索引创建索引  对比...
    99+
    2023-07-04
  • java与scala数组及集合的基本操作对比
    目录java与scala数组及集合的操作scala数组基本操作对应java代码scala可变数组ArrayBufferjava 相应 ArrayList操作scala 的数组遍历ja...
    99+
    2024-04-02
  • Python中对基本文件操作
    1.文件的作用 保存数据放在磁盘中 2.打开文件 f=open(‘文件’,‘w’)或者f=open(‘文件’,‘r’) 3.文件操作 3.1 写数据(write) 如果文件不存在那么创建,如果存在那...
    99+
    2023-08-31
    python 数学建模 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作