【Excel组成】

主要由四部分组成:

1.工作簿

  每一个Excel文件都可以看成是一个工作簿,当打开一个Excel文件时,相当于打开了一个Excel工作簿。

2.工作表

  当打开了Excel工作簿后,我们可以在底部看到"Sheet"标签,这个就表示工作表,一个"sheet"标签代表一个工作表。

3.行

  每个工作表内,每一行就是一行。如图表示第3行

4.单元格

理解了Excel的基本含义后,可以开始用java代码来操作Excel了,本文使用POI来操作Excel。

【POI操作Excel的流程】

1.操作(创建、读取)工作簿(Excel文件)

2.操作工作表

3.操作行

4.操作单元格

【Excel样式】

合并单元格对象是属于工作簿,运用于工作表。

//起始行号,结束行号,起始列号,结束列号

CellRangeAddress(int firstRow,int lastRow, int firstCol,int lastCol);

样式属于工作簿,运用于单元格;

字体属于工作簿,加载在样式中通过样式运用于单元格。

【POI包中主要对象-------Excel中几个对象对应表】

使用上面的几个POI中的对象,我们来具体操作一下Excel

【工程截图】

【OperateExcel.java】testWriteExcel()方法,创建工作簿,向某一行某一列的单元格写入数据

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;
import org.junit.Test; public class OperateExcel {
/**
* 创建工作簿,并向某一行某一列写入数据
* @throws IOException
*/
@Test
public void testWriteExcel() throws IOException{
//1.创建工作簿
HSSFWorkbook workbook=new HSSFWorkbook();
//2.创建工作表,命名为"hello work!"
HSSFSheet sheet=workbook.createSheet("hello work!");
//3.创建行,如:第6行(Excel的第6行)
HSSFRow row=sheet.createRow(5);
//4.创建单元格,第6行第4列
HSSFCell cell=row.createCell(3); cell.setCellValue("HigginCui!!加油啊啊啊!"); //设置写入单元格的字符串值 String fileName="D:\\测试.xls"; //Excel(工作簿)保存在D盘,名称为"测试.xls"
FileOutputStream fileOutputStream=new FileOutputStream(fileName);
workbook.write(fileOutputStream);
workbook.close();
fileOutputStream.close();
}
}

【运行结果】

首先看D盘下是否生成的名为"测试.xls"的Excel文件。

打开文件查看内容:

【OperateExcel.java】testReadExcel()方法,读取已存在的Excel(工作簿)中某一行某一列的单元格的数据。

  /**
* 读取某一行某一列的值
* @throws IOException
*/
@Test
public void testReadExcel() throws IOException{
String fileName="D:\\测试.xls"; FileInputStream fileInputStream=new FileInputStream(fileName);
//1.读取工作簿
HSSFWorkbook workbook=new HSSFWorkbook(fileInputStream);
//2.读取工作表
HSSFSheet sheet=workbook.getSheetAt(0);
//3.读取行,第6行
HSSFRow row=sheet.getRow(5);
//4.读取列,第6行第4列
HSSFCell cell=row.getCell(3); System.out.println("第6行第4列的值:"+cell.getStringCellValue()); workbook.close();
fileInputStream.close();
}

【运行结果】

查看控制台读取的数据

【OperateExcel.java】testStyleExcel()方法,创建工作簿,并合并单元格、字体设置、背景色设置等 样式功能

  /**
* 合并单元格、字体、背景色等样式设置
* @throws IOException
*/
@Test
public void testStyleExcel() throws IOException{
//1.创建工作簿
HSSFWorkbook workbook=new HSSFWorkbook();
//1.1 创建 合并单元格对象,合并第3行第3列
CellRangeAddress cellRangeAddress=new CellRangeAddress(2,2,2,4);//起始行号,结束行号,起始列号,结束列好
//1.2创建 单元格样式
HSSFCellStyle style=workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //设置水平居中
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //垂直居中
//1.3创建 字体
HSSFFont font=workbook.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //设置字体加粗
font.setFontHeightInPoints((short)16); //字体大小为16 //将字体加载到工作簿的样式中
style.setFont(font); //1.4设置背景
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //设置填充模式
style.setFillForegroundColor(HSSFColor.GREEN.index); //设置背景为绿色 //2.创建工具类
HSSFSheet sheet=workbook.createSheet("hello work...");
//2.1加载 合并单元格对象
sheet.addMergedRegion(cellRangeAddress); //3.创建行,第3行
HSSFRow row =sheet.createRow(2); //4.创建单元格,第3行第3列
HSSFCell cell=row.createCell(2);
//4.1加载 单元格格式
cell.setCellStyle(style);
cell.setCellValue("Hello World!!!");
String fileName="D:\\测试.xls"; //存放Excel的路径
FileOutputStream fileOutputStream=new FileOutputStream(fileName);
workbook.write(fileOutputStream);
workbook.close();
fileOutputStream.close();
}

【运行结果】

直接打开“D:\\测试.xls”,查看如下:

05_Excel操作_01_简单导入导出的更多相关文章

  1. Hive常用操作之数据导入导出

    一.Hive数据导入导出 1.hive数据导出 很多时候,我们在hive中执行select语句,希望将最终的结果保存到本地文件或者保存到hdfs系统中或者保存到一个新的表中,hive提供了方便的关键词 ...

  2. Excel操作--使用NPOI导入导出Excel为DataTable

    1.ExcelHelper封装 namespace NPOI操作Excel { public class ExcelHelper { /// <summary> /// DataTable ...

  3. 【转】Java操作CSV文件导入导出

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  4. [Excel]C#操作Excel(导入导出)

    /// <summary> /// 读取Excel文档 /// </summary> /// <param name="Path">文件名称&l ...

  5. C# 使用NPOI 实现Excel的简单导入导出

    private void btnImport_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); DataTable dt ...

  6. 配置toad进行导入导出数据库操作

    最近需要对oracle进行导入导出操作,于是研究使用toad进行导入导出oracle数据库操作,现稍作记录. oracle的导入导出不管是否使用toad还是pl/sql工具进行操作,实际上最终都是通过 ...

  7. 从零自学Hadoop(17):Hive数据导入导出,集群数据迁移下

    阅读目录 序 将查询的结果写入文件系统 集群数据迁移一 集群数据迁移二 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephis ...

  8. Hive数据导入/导出

    1.1 导入/导出规则 EXPORT 命令导出数据表或分区,与元数据一起输出到指定位置.又可以从这个输出位置移动到不同的Hadoop 或Hive 实例中,并且使用IMPORT 命令导入. 当导出一个分 ...

  9. NPOI读写Excel组件封装Excel导入导出组件

    后台管理系统多数情况会与Excel打交道,常见的就是Excel的导入导出,对于Excel的操作往往是繁琐且容易出错的,对于后台系统的导入导出交互过程往往是固定的,对于这部分操作,我们可以抽离出公共组件 ...

随机推荐

  1. 2013 ACM区域赛长沙 I LIKE vs CANDLE(ZOJ3734) 很好的一道树形DP

    题意:一棵有根树,每个节点都有一个value值和属性(zan或是 CANDLE).你可以通过反转一些点的属性,反转一个点时候,它的整个子树都会被反转属性.有些点反转消耗代价为X,有些为Y.你的目标的是 ...

  2. 使用Windows Azure创建Windows系统虚拟机-上

    创建虚拟机来运行Windows 本教程介绍了如何轻松创建运行Windows 的 Azure虚拟机(VM),用作来自Azure管理门户中映像图库的Windows 服务器映像.映像图库提供了多种图像,包括 ...

  3. Windows Azure 基本操作手册

    http://www.cnblogs.com/sennly/p/4139663.html 基本测试信息 登陆地址:https://manage.windowsazure.cn(Azure管理门户,适用 ...

  4. VPS选购及辨别vps虚拟化技术

    现在国内外的VPS(Virtual Private Server)服务商非常多,每个服务商使用的VPS架构都不同.VPS属于虚拟化服务器,中文名:虚拟专用服务器. 常见的VPS虚拟化架构有多种:Ope ...

  5. WPF的MVVM模式

    Model->數據模型View->視圖View-Model->連接數據模型和視圖

  6. php排序之快速排序

    关于快速排序的介绍 请看百度百科讲解的很详细 http://baike.baidu.com/link?url=1VOpp4qjdwKma81MFPozjvyPy2rYJos6ZmfP5Ady3xjEP ...

  7. 恼人的Visual Studio 2010崩溃重启问题

    上周时Visual Studio 2010突然出现崩溃现象.在源文件修改只要一编译,马上就崩溃,而且还不弹出任何异常窗口,严重影响软件开发工作. google了无数解决方案 试了下面这些方法: 1)h ...

  8. lock语句的递归问题

    原文地址 前几天在网上闲逛,无意中看到有这么一道题及其答案,如下: 根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由. ) { i--; tes ...

  9. [Javascript] Drawing Paths - Curves and Arcs

    window.onload = function() { var canvas = document.getElementById("canvas"), context = can ...

  10. 容器大小的改变以及容器操作可能使迭代器失效、vector对象的容量变化

    1 改变容器的大小 我们可以使用resize来增加或缩小容器,与往常一样,array不支持resize.如果当前大小大于所要求的大小,容器后面的元素会被删除:如果当前大小小于新大小,会将新元素添加到容 ...