jxl 读取xls,并转为二维数组可进行保存

jxl.jar: 

通过java操作excel表格的工具类库

支持Excel 95-2000的所有版本

生成Excel 2000标准格式

支持字体、数字、日期操作

能够修饰单元格属性

支持图像和图表

应该说以上功能已经能够大致满足我们的需要。最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式。

  直接上代码:jxl操作xls其实很简单

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import jxl.Cell;
import jxl.CellType;
import jxl.DateCell;
import jxl.LabelCell;
import jxl.Sheet;
import jxl.Workbook;

public class Jxl {
    // 以下是导入excel的一系列属性
    private static Sheet sheet;
    private static String[][] excelValue;

    public static void main(String[] args) {
        File upload = new File("D://1.xls");
        if (upload.exists()) {
            initExcel(upload); // 初始化
            readExcel(); // 读取
        } else {
            System.out.println("file is not found");
        }
        System.out.println(excelValue[1][1]);// 输出验证下是否存入二维数组
    }

    /**
     * 读取excel文件中数据,保存到sheet对象中
     *
     * @param upload
     *            可以通用
     */
    private static void initExcel(File upload) {
        Workbook rwb = null;
        try {
            InputStream is = new FileInputStream(upload);
            rwb = Workbook.getWorkbook(is);
            // 获得第一个工作表对象
            sheet = rwb.getSheet(0);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 读取excel中数据进入excelValue数组中
     *
     * 可以通用
     */
    private static void readExcel() {
        excelValue = new String[sheet.getRows()][sheet.getColumns()]; // 将行和列存储到二维数组中
        for (int i = 0; i < sheet.getRows(); i++)
            for (int j = 0; j < sheet.getColumns(); j++) {
                Cell cell = sheet.getCell(j, i);// 将工作表分成一块一块
                if ("".equals(cell.getContents().toString().trim())) {
                    excelValue[i][j] = "";
                }
                if (cell.getType() == CellType.LABEL) {
                    LabelCell labelcell = (LabelCell) cell;
                    excelValue[i][j] = labelcell.getString().trim();
                } else if (cell.getType() == CellType.NUMBER) {
                    excelValue[i][j] = cell.getContents();
                } else if (cell.getType() == CellType.DATE) {
                    DateCell datcell = (DateCell) cell;
                    excelValue[i][j] = datcell.getDate().toString();
                } else {
                    excelValue[i][j] = cell.getContents().toString().trim();
                }
            }
    }

}
时间: 2024-09-25 05:31:29

jxl 读取xls,并转为二维数组可进行保存的相关文章

c++-C++如何创建动态二维数组,然后将二维数组的数保存到一维数组中?

问题描述 C++如何创建动态二维数组,然后将二维数组的数保存到一维数组中? //此程序是我自己编的,但是不能通过,请问这是怎么回事? #include using namespace std; int main() { int n,m,k,i,j,l; cin>>n>>m>>k; int X[][]={0}; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { X[i][j]=i*j; } int Y[]={0}; for(i=1;i

c#如何把json转换为二维数组呢?

问题描述 [["2005-01-04","2150.000","2155.000","2142.000","2150.000","58792"],["2005-01-05","2131.000","2154.000","2127.000","2154.000","71172&qu

c++-C++ 字符串 转 二维数组

问题描述 C++ 字符串 转 二维数组 CString aa = "11<225>22<225>33<225>44<000>aa<225>bb<225>cc<225>dd<000>ee<255>ff<255>hh<000>"想转为二维数组 求代码 学习 想转为二维数组 求代码 学习 解决方案 // app1.cpp : Defines the entry

2013级C++第15周项目——二维数组

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-折腾二维数组]创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中.输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"),再将数组"倒"着输出(即最后一行最后一列的最先输

2014秋C++ 第14周项目 二维数组

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目1-折腾二维数组]创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后: 通过键盘输入,使后两列的10个元素获得值: 按行序优先输出数组元素: 将所有元素值乘以3后保存在数组中: 按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"

《C语言及程序设计》实践项目——二维数组与指针

返回:贺老师课程教学链接 [项目1-二维数组当函数参数]定义一个函数来完成对参数数组中元素的求和工作,函数声明如下: int sum(int array[ ][4],int m,int n); //该函数完成对array数组中的前m行和n列元素求和 在以下程序的基础上,完成对sum函数的定义. #include <stdio.h> int sum(int array[ ][4],int m,int n);//该函数完成对array数组中的前m行和n列元素求和 int main() { int

c++读取txt文件里的数据,然后保存在二维数组中进行处理

问题描述 c++读取txt文件里的数据,然后保存在二维数组中进行处理 我写的程序是把数据自己输入在主函数里,但是如果想实际的应用应该是有一个数据文件,然后提取出数据文件的数据保存在二维数组中才对,而且这个二维数组要根据具体文件的大小定数组的行列数,有谁能帮我做一下吗,谢谢! #include #include #include using namespace std; #define M 10//二维数组的行 #define N 6//二维数组的列 class Data { double a[M

快速读取图片文件每一像素点颜色到二维数组!不要GetPixel!

问题描述 目前代码:DoUntily=jpgimage.Height'把图片读取到ptoall二维数组里DoUntilx=jpgimage.Widthptoall(x,y)=jpgimage.GetPixel(x,y)x=x+1Loopx=0y=y+1Loop jpgimage是bitmap类型,这样getpixel太慢了..有谁有更加快速的算法读取每一像素点rgb颜色到二维数组.. 解决方案 本帖最后由 gcyzzz 于 2014-12-28 22:01:41 编辑解决方案二:怎么破!!!解决

将二维数组转为一维数组的2种方法_php技巧

如何将下面的二维数组转为一维数组. 复制代码 代码如下: $msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'name'=>'mary' ), array( 'id'=>'78', 'name'=>'lili' ),); 第一种方法: 复制代码 代码如下: foreach($msg as $k => $v){ $ids[] = $id; $names[] = $name; }