`

读写Excel文件的内容

    博客分类:
  • java
阅读更多
package chb.util;

import java.io.File;
import java.io.IOException;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class ExcelUtils {

/**读取Excel文件的内容
* @param file  待读取的文件
* @return
*/
public static String readExcel(File file){
StringBuffer sb = new StringBuffer();

Workbook wb = null;
try {
//构造Workbook(工作薄)对象
wb=Workbook.getWorkbook(file);
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

if(wb==null)
return null;

//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
Sheet[] sheet = wb.getSheets();

if(sheet!=null&&sheet.length>0){
//对每个工作表进行循环
for(int i=0;i<sheet.length;i++){
//得到当前工作表的行数
int rowNum = sheet[i].getRows();
for(int j=0;j<rowNum;j++){
//得到当前行的所有单元格
Cell[] cells = sheet[i].getRow(j);
if(cells!=null&&cells.length>0){
//对每个单元格进行循环
for(int k=0;k<cells.length;k++){
//读取当前单元格的值
String cellValue = cells[k].getContents();
sb.append(cellValue+"\t");
}
}
sb.append("\r\n");
}
sb.append("\r\n");
}
}
//最后关闭资源,释放内存
wb.close();
return sb.toString();
}
/**生成一个Excel文件
* @param fileName  要生成的Excel文件名
*/
public static void writeExcel(String fileName){
WritableWorkbook wwb = null;
try {
//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(fileName));
} catch (IOException e) {
e.printStackTrace();
}
if(wwb!=null){
//创建一个可写入的工作表
//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);

//下面开始添加单元格
for(int i=0;i<10;i++){
for(int j=0;j<5;j++){
//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");
try {
//将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}

}
}

try {
//从内存中写入文件中
wwb.write();
//关闭资源,释放内存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
/**搜索某一个文件中是否包含某个关键字
* @param file  待搜索的文件
* @param keyWord  要搜索的关键字
* @return
*/
public static boolean searchKeyWord(File file,String keyWord){
boolean res = false;

Workbook wb = null;
try {
//构造Workbook(工作薄)对象
wb=Workbook.getWorkbook(file);
} catch (BiffException e) {
return res;
} catch (IOException e) {
return res;
}

if(wb==null)
return res;

//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
Sheet[] sheet = wb.getSheets();

boolean breakSheet = false;

if(sheet!=null&&sheet.length>0){
//对每个工作表进行循环
for(int i=0;i<sheet.length;i++){
if(breakSheet)
break;

//得到当前工作表的行数
int rowNum = sheet[i].getRows();

boolean breakRow = false;

for(int j=0;j<rowNum;j++){
if(breakRow)
break;
//得到当前行的所有单元格
Cell[] cells = sheet[i].getRow(j);
if(cells!=null&&cells.length>0){
boolean breakCell = false;
//对每个单元格进行循环
for(int k=0;k<cells.length;k++){
if(breakCell)
break;
//读取当前单元格的值
String cellValue = cells[k].getContents();
if(cellValue==null)
continue;
if(cellValue.contains(keyWord)){
res = true;
breakCell = true;
breakRow = true;
breakSheet = true;
}
}
}
}
}
}
//最后关闭资源,释放内存
wb.close();

return res;
}
    /**往Excel中插入图片
     * @param dataSheet  待插入的工作表
     * @param col 图片从该列开始
     * @param row 图片从该行开始
     * @param width 图片所占的列数
     * @param height 图片所占的行数
     * @param imgFile 要插入的图片文件
     */
    public static void insertImg(WritableSheet dataSheet, int col, int row, int width,
            int height, File imgFile){
    WritableImage img = new WritableImage(col, row, width, height, imgFile);
    dataSheet.addImage(img);
    }
   
   
    public static void main(String[] args) {
   
    try {
    //创建一个工作薄
WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));
//待插入的工作表
WritableSheet imgSheet = workbook.createSheet("Images",0);
//要插入的图片文件
File imgFile = new File("D:/1.png");
//图片插入到第二行第一个单元格,长宽各占六个单元格
insertImg(imgSheet,0,1,6,6,imgFile);
workbook.write();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}   
    }

}
分享到:
评论

相关推荐

    读取EXCEL文件内容

    Java作为一种强大的编程语言,提供了多种方式来读取Excel文件的内容,无论文件是2007以前的老版本还是2007及以后的新版本。本文将详细探讨如何使用Java读取不同版本的Excel文件。 首先,针对2007年之前的Excel文件...

    读取excel文件内容,返回数组

    结合PHPExcel插件写的读取excel文件内容,并返回二维数组。可以控制读取excel哪张工作表,读取几列的内容。

    C#读写Excel文件

    ### C#读写Excel文件知识点详解 #### 一、引言 在软件开发过程中,Excel文件作为一种常用的数据存储格式,其处理方式对于提高程序的功能性和灵活性具有重要意义。本篇文章将详细介绍如何利用C#语言实现对Excel文件...

    NPOI批量读取excel文件内容写入excel模板.rar

    在这个"NPOI批量读取excel文件内容写入excel模板.rar"压缩包中,包含的资源可以帮助我们理解如何利用NPOI来批量处理Excel数据,并将读取到的信息填入预设的Excel模板中。这里我们将详细探讨NPOI的使用方法、批量读取...

    C# winform 读取Excel文件 表名及内容

    在本场景中,我们将探讨如何在Winform应用中读取Excel文件,包括表名和内容。这里使用的开发工具是Visual Studio 2010,它支持.NET Framework 4.0,这使得我们可以利用Microsoft Office Interop库来操作Excel文件。 ...

    C#读取Excel文件内容发送邮件

    C#邮件发送功能实现,以163邮箱服务器为例,读取Excel文件内容的收信人发送邮件。

    java 读取Excel文件中的内容

    在Java编程中,读取Excel文件的内容是一项常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常包含表格数据,而Java提供多种库来处理这类任务,比如Apache POI、JExcelApi和OpenCSV等。本篇将重点...

    使用POI读取excel文件内容.docx

    在上述的代码片段中,我们看到一个名为`ExcelReader`的类,该类是用来读取Excel文件内容的。这个类使用了Apache POI库中的`POIFSFileSystem`和`HSSFWorkbook`类来处理Excel文件。 首先,我们需要了解`...

    教你如何使用Java读取Excel文件内容.txt

    本文将详细解析如何利用Java读取Excel文件内容,这是一项常见但至关重要的技能,尤其是在处理大量数据时。通过深入分析给定文件中的代码示例,我们将探索使用Java读取Excel的具体方法,包括必要的库导入、连接数据库...

    QT 快速读取Excel文件

    在处理Excel文件时,QT虽然没有内置的专门模块,但可以通过一些第三方库如QAxContainer或QSpreadsheet来实现快速读取Excel文件的功能。 QAxContainer是QT提供的一个ActiveX控件容器,允许在QT应用中使用Windows的...

    C++读写Excel文件

    **C++读写Excel文件——使用OpenXLSX库** 在C++编程中,处理Excel文件通常是数据分析、报告生成或数据存储的重要环节。OpenXLSX是一个轻量级且高效的开源库,它允许开发者在C++环境中方便地读取、写入、创建和修改....

    C# 导入Excel文件到ListView和导出ListView到Excel文件

    首先,要导入Excel文件到ListView,我们需要使用一个能够读取Excel文件的库,如Microsoft Office Interop库或更轻量级的第三方库,如NPOI。对于本示例,我们假设使用NPOI,因为它无需安装Office,可以跨平台运行。 ...

    Java读取Excel文件的内容

    总结来说,使用Java和Apache POI框架读取Excel文件的内容主要包括以下几个步骤: 1. 引入Apache POI依赖。 2. 创建`FileInputStream`,加载Excel文件到`Workbook`对象。 3. 从`Workbook`中获取`Sheet`对象。 4. 遍历...

    VC++读写Excel文件源代码.rar_VC 读写Excel_excel_excel界面_excel读写_vc excel

    读写excel文件内容,并将其显示到vs界面上

    html静态读取excel文件

    以`SheetJS`为例,可以使用以下代码读取Excel文件: ```javascript var reader = new FileReader(); reader.onload = function(e) { var data = e.target.result; var workbook = XLSX.read(data, {type: 'binary...

    qt读取excel文件

    在Qt框架下,读取Excel文件通常涉及到使用第三方库,如QAxContainer模块或QCustomPlot等。QAxContainer允许Qt应用程序与ActiveX控件交互,而Excel文件可以通过Microsoft的COM接口来访问。以下是详细的知识点说明: ...

    Qt Excel读写 - QXlsx读取Excel文件显示到QTableWidget

    自己写了一个简化版本:`可以读取Excel文件,显示到QTableWidget上 (如上图所示),也可在QTableWidget上进行修改,再保存到Excel文件中。` - `本文只考虑了单元格合并情况,其他格式问题暂未处理 (字体、颜色等)`

    vb6读取excel文件

    以下是一些关于如何在VB6中读取Excel文件及其内容的关键知识点,以及如何连接到SQL数据库以读取数据。 1. **引入对象库**:首先,你需要在VB6项目中引入Microsoft Excel Object Library。这可以通过“工程”菜单 -&gt;...

    VS2010/MFC 读写excel文件 操作类

    以下将详细讲解如何通过MFC在VS2010中实现读写Excel文件的操作。 首先,我们需要了解基础的Excel文件格式。Excel文件通常以.xlsx或.xls为扩展名,它们是基于Open XML标准的。在MFC中,我们不会直接操作这些XML文件...

    C# 读取EXCEL文件

    本主题将深入探讨如何使用C#来读取Excel文件,并将其内容展示在ListView控件中。Excel文件(如123.xls)是Microsoft Office套件中的电子表格文档,通常用于存储和处理数据。在C#中处理Excel文件可以借助多种库,如...

Global site tag (gtag.js) - Google Analytics