jxl本地excel的导入导出

一、从指定位磁盘的excel文件中导入数据并保存数据库:

package com.inspur;

 

import java.io.File;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import jxl.Sheet;

import jxl.Workbook;

 

/**

 * @author WHD 2014-10-28

 */

public class TestImport {

public static void main(String[] args) throws Exception {

// 存放list集合

Map<String, Object> map = new HashMap<>();

// list集合存放一行的数据

List<Object> list = null;

// 生成一个excel表文件,从指定的文件中获得数据

Workbook workbook = Workbook.getWorkbook(new File("G:/test.xls"));

// 获取这个表中共有多少页,不管有没有数据只要有页数就会生成

Sheet sheet[] = workbook.getSheets();

System.out.println("文件页数" + sheet.length);

// 当前页的nm列的具体值

String lab = null;

for (int a = 0; a < sheet.length; a++) {

// sheet[a].getRows 获取当前页的总行数

for (int i = 0; i < sheet[a].getRows(); i++) {

list = new ArrayList<>();

// sheet[a].getColumns()获取当前行的总列数

for (int j = 0; j < sheet[a].getColumns(); j++) {

// ij列的值

lab = sheet[a].getCell(j, i).getContents();

// 这是具体一个单元格

System.out.print(lab + "");

// 将一行一行的数据保存到list集合中

list.add(lab);

}

// 遍历保存list也就是将这页的数据保存到map集合中

map.put("name" + i, list);

list = null;

System.out.println();

}

}

// 上面的代码是从指定磁盘的excel中读取数据

// 保存到数据库

List listc = null;

for (int c = 0; c < sheet[0].getRows(); c++) {

listc = (List) map.get("name" + c);

// 循环遍历给对象赋值。 调用方法向数据库中保存数据

for (Object obj : listc) {

System.out.println((String) obj);

}

listc = null;

}

 

}

}

 

二、本机器上从数据库获取的数据导出到运行程序的机器的指定位置这里设置了excel导出后的很多属性,比如设置单元格的颜色,居中,自动换行等:

package com.inspur;

 

import java.io.File;

import java.io.IOException;

 

import jxl.Workbook;

import jxl.format.Alignment;

import jxl.format.Border;

import jxl.format.BorderLineStyle;

import jxl.format.Colour;

import jxl.format.UnderlineStyle;

import jxl.format.VerticalAlignment;

import jxl.write.Label;

import jxl.write.WritableCellFormat;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

 

/**

 *@author WHD

 *2014-11-8

 */

public class TestColor {

 /**

     * @param args

     * @throws IOException 

     * @throws WriteException 

     * @throws RowsExceededException 

     */ 

    public static void main(String[] args) throws IOException, RowsExceededException, WriteException { 

        //创建Excel工作簿

        WritableWorkbook workbook = Workbook.createWorkbook(new File("G:/ExcelDemo.xls")); 

 

        //创建Excel电子薄

        WritableSheet sheet = workbook.createSheet("第一个Sheet", 0); 

        //分别给2,3,4列设置不同的宽度

        sheet.setColumnView(0, 40); 

        sheet.setColumnView(1, 30); 

        sheet.setColumnView(2, 50); 

        sheet.setColumnView(3, 20); 

 

        //sheet电子版中所有的列设置默认的列的宽度

        sheet.getSettings().setDefaultColumnWidth(30); 

 

        //设置字体

        WritableFont font1 = new WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.RED); 

 

        WritableCellFormat cellFormat1 = new WritableCellFormat(font1); 

        //设置背景颜色

        cellFormat1.setBackground(Colour.BLUE_GREY); 

        //设置边框

        cellFormat1.setBorder(Border.ALL, BorderLineStyle.DASH_DOT); 

        //设置自动换行

        cellFormat1.setWrap(true); 

        //设置文字居中对齐方式

        cellFormat1.setAlignment(Alignment.CENTRE); 

        //设置垂直居中

        cellFormat1.setVerticalAlignment(VerticalAlignment.CENTRE); 

        //创建单元格 

        Label label1 = new Label(0, 0, "第一行第一个单元格(测试是否自动换行!)",cellFormat1); 

        Label label2 = new Label(1, 0, "第一行第二个单元格",cellFormat1); 

        Label label3 = new Label(2, 0, "第一行第三个单元格",cellFormat1); 

        Label label4 = new Label(3, 0, "第一行第四个单元格",cellFormat1); 

        //添加到行中

        sheet.addCell(label1); 

        sheet.addCell(label2); 

        sheet.addCell(label3); 

        sheet.addCell(label4); 

         

        //给第二行设置背景、字体颜色、对齐方式等等

        WritableFont font2 = new WritableFont(WritableFont.ARIAL,14,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.BLUE2); 

        WritableCellFormat cellFormat2 = new WritableCellFormat(font2); 

        cellFormat2.setAlignment(Alignment.CENTRE); 

        cellFormat2.setBackground(Colour.PINK); 

        cellFormat2.setBorder(Border.ALL, BorderLineStyle.THIN); 

        cellFormat2.setWrap(true); 

 

        //创建单元格

        Label label11= new Label(0,  1, "第二行第一个单元格(测试是否自动换行!)",cellFormat2); 

        Label label22 = new Label(1, 1, "第二行第二个单元格",cellFormat2); 

        Label label33 = new Label(2, 1, "第二行第三个单元格",cellFormat2); 

        Label label44 = new Label(3, 1, "第二行第四个单元格",cellFormat2); 

 

        sheet.addCell(label11); 

        sheet.addCell(label22); 

        sheet.addCell(label33); 

        sheet.addCell(label44); 

 

        //写入Excel表格中

        workbook.write(); 

        //关闭流

        workbook.close(); 

    } 

}

 

 

 

 

转载于:https://my.oschina.net/u/1454838/blog/342262

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值