你是怎么学习java知识的呢?(记学习POI,使用java对表格进行操作的经历)

记录一次学习的过程,希望也可以了解到其它的学习方法,嘻嘻。

目录

一得到任务:

二打开度娘获取信息

三打开eclipse写小例子

四导入包创建简单实例训练

五进一步掌握

六寻求真正的掌握

总结:

一得到任务:

     当我打开工作QQ群的时候,接收到了这样的一个任务

组长真好啊(QAQ)

 


二打开度娘获取信息

     从讨论中了解到,POI提供API给java程序对Microsoft Office格式档案进行读写操作。但是了解甚少啊,怎么办???度娘来帮忙呀!于是,打开google浏览器,百度搜索:

然后得到这样的信息介绍:

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 其中:

HSSF - 提供读写Microsoft Excel格式档案的功能。

XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。

HWPF - 提供读写Microsoft Word格式档案的功能。

HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

HDGF - 提供读写Microsoft Visio格式档案的功能

找到了我需要的信息HSSF和XSSF,之后,看了简单的介绍。


三打开eclipse写小例子

     每一次了解了这些基本知识之后,需要做什么???(阅读源码?额,这个难度太高了)我当然是打开eclipse准备练习这个例子。但,貌似还没有下载POI,于是,我又找到了度娘:”娘娘,告诉我官网的下载地址吧”,然后我就得到了这样的下载地址:

http://poi.apache.org/download.html#POI-4.1.2,进入之后就是这样的了。

但是,为了避免出现很多的错误,我又寻找安装教程

 然后,下载loading.....

 

 


四导入包创建简单实例训练

     下载完,按照我一贯的做法导入之后,也可以去百度一下这个教程,这里提供:https://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html,和https://www.cnblogs.com/ruber/p/10671079.html,这里提醒一下,如果只是单导入jar有可能报错,还需要导入解压后的bin文件夹下的jar

一切导入之后,开始写两个最简单的例子,来看看,一个创建的例子:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileOutputStream;
public class CreatXL {
	public static String outputFile = "D:\\test.xls";
	public static void main(String []args) {
		try {
			HSSFWorkbook workbook = new HSSFWorkbook();
			HSSFSheet sheet = workbook.createSheet("Hello");
			HSSFRow row = sheet.createRow((short)0);
			HSSFCell cell = row.createCell((short)0);
			cell.setCellValue("1");
			FileOutputStream fOut = new FileOutputStream(outputFile);
			workbook.write(fOut);
			fOut.flush();
			fOut.close();
			System.out.println("文件已生成...");
		}catch(Exception e) {
			System.out.println("已运行xlCreate():"+e);			
		}
	}
}

 又继续写了一个读取的例子:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
public class ReadXL {
    public static String fileToBeRead = "D:\\test.xls";
    public static void main(String []args) {
        try {
            HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
            HSSFSheet sheet = workbook.getSheet("Hello");
            HSSFRow row = sheet.getRow(0);
            HSSFCell cell = row.getCell((short)0);
            System.out.println("左上端单元是: " + cell.getStringCellValue());
        } catch (Exception e) {
            System.out.println("已运行xlRead() : " + e);
        }
       
    }
}

 之后,迫不及待的编译运行。首先,运行创建程序

然后找到D盘下的test.xsl,打开之后如下(正确):

 

再次兴奋的打开创建程序:

那么到这里学习就结束了???


五进一步掌握

     只是了解了简单的创建读取操作是不够的呀(组长可能会吃了我),那么这个时候把我们项目数据截取一部分读取试试?

说着就开始写代码:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
public class ReadXL {
    public static String fileToBeRead = "D:\\test1.xls";
    public static void main(String []args) {
        try {
        	HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
            HSSFSheet sheet = workbook.getSheet("Sheet1");
            int last = sheet.getLastRowNum();
            for(int i=0;i<=last;i++)
            {
            	HSSFRow row = sheet.getRow(i);
            	String Value0 = row.getCell(0).getStringCellValue();
	            String Value1 = row.getCell(1).getStringCellValue();
	            String Value2 = row.getCell(2).getStringCellValue();
	            String Value3 = row.getCell(3).getStringCellValue();
	            String Value4 = row.getCell(4).getStringCellValue();
	            System.out.println(Value0+"\t"+Value1+"\t"+Value2+"\t"
			            +Value3+"\t"+Value4);
            }	
        }catch(Exception e) {
            	System.out.println("没有打开文件"+e);
        	}
        
        }
    }

 

 检查了一下语法没错,然后编译运行。what!!!

不能获得???报错了,这个时候,果断百度,然后找到了答案:只需要确定单元格类型即可,添加如下代码

for(int j=0;j<=4;j++)
{
   HSSFCell cell = row.getCell(j);
   cell.setCellType(CellType.STRING);
}

 

 具体操作,俺从度娘那里得到的:https://blog.csdn.net/wang704987562/article/details/81837750,大佬呀!

然后再次编写程序如下:

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
public class ReadXL {
    public static String fileToBeRead = "D:\\test1.xls";
    public static void main(String []args) {
        try {
        	HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
            HSSFSheet sheet = workbook.getSheet("Sheet1");
            int last = sheet.getLastRowNum();
            for(int i=0;i<=last;i++)
            {
            	HSSFRow row = sheet.getRow(i);
            	for(int j=0;j<=4;j++)
            	{
            	HSSFCell cell = row.getCell(j);
            	cell.setCellType(CellType.STRING);
            	}
            	String Value0 = row.getCell(0).getStringCellValue();
	            String Value1 = row.getCell(1).getStringCellValue();
	            String Value2 = row.getCell(2).getStringCellValue();
	            String Value3 = row.getCell(3).getStringCellValue();
	            String Value4 = row.getCell(4).getStringCellValue();
	            System.out.println(Value0+"\t"+Value1+"\t"+Value2+"\t"
			            +Value3+"\t"+Value4);
            }	
        }catch(Exception e) {
            	System.out.println("没有打开文件"+e);
        	}
        
        }
    }

给大家看看要读取的一部分数据截取

然后运行打印就有:


六寻求真正的掌握

     做完这些之后,其实感觉和Android项目中对json的解析一样,如果我要在项目中使用它,就必须要把我需要的数据单独的获取解析。仅仅是读取创建表的话(组长会打死我...),所以就必须要掌握,当然就找到了一篇解析的例子:

https://www.jb51.net/article/157349.htm,然后又百度找到了POI中对Excel的相关操作作为备份(以防需要用时少找资料)。


总结:

     回顾一下这次学习的经历,首先接受任务--->然后需求度娘了解基本的概念操作---->自己动手实践简单项目--->实现较复杂的项目联系---->回顾自己需要掌握的程度去寻找资料,然后进行联系,备份相关资料---->学习POI基本完成

     上述就是我学习POI的经过,其实其他的自学很多时候也是这样的模式。其中也有错误的地方,但是不断的总结的话,相信可以更好呀。不知道各位大佬有什么更好的学习方式吗?欢迎评论交流哦。 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

threecat.up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值