java excel文件的读写

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.CellFormat;
import jxl.format.Colour;
import jxl.write.Boolean;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.NumberFormat;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class excel {
    /**
     *
     * @param filePath 文件保存路径
     * @param fileName 文件名
     */
    public void ExcelExportUtil(String filePath,String fileName) {
        // excel文件表头
        String[] title = {"编号","姓名","性别","年龄","添加时间","测试带有小数点的","测试字体颜色","通过获取模板,改变字体颜色","测试单元格合并"};
        try {
            // 创建Excel工作薄
            WritableWorkbook wwb;
            // 新建立一个jxl文件
            OutputStream os = new FileOutputStream(filePath+fileName);
            wwb = Workbook.createWorkbook(os);
            // 添加第一个工作表并设置第一个Sheet的名字
            WritableSheet sheet = wwb.createSheet("用户", 0);
            Label label;
            for (int i = 0; i < title.length; i++) {
                // 在Label对象的子对象中指明单元格的位置和内容
                label = new Label(i, 0, title[i]);
                // 将定义好的单元格添加到工作表中
                sheet.addCell(label);
            }
            // 填充编号
            Number code = new Number(0,1,001);
            sheet.addCell(code);
            // 填充名称
            label = new Label(1, 1, "张三");
            sheet.addCell(label);
            //添加性别(Bollean 类型:true 男 ,false 女)
            Boolean sex = new Boolean(2,1,true);
            sheet.addCell(sex);
            //添加年龄
            Number age = new Number(3,1,19);
            sheet.addCell(age);
            //添加时间
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String newdate = sdf.format(new Date());

            label = new Label(4, 1, newdate);
            sheet.addCell(label);
            /*
             * 带有小数点类型的
             */
            NumberFormat nf = new NumberFormat("#.###");
            WritableCellFormat wcf = new WritableCellFormat(
                    nf);

            Number nb = new Number(5, 1, 2.456, wcf);
            sheet.addCell(nb);
            /*
             * 测试单元格样式改变
             */
            WritableCellFormat wc = new WritableCellFormat();
            // 设置居中
            wc.setAlignment(Alignment.CENTRE);
            // 设置单元格的背景颜色
            wc.setBackground(Colour.RED);
            //设置边框线
            wc.setBorder(Border.ALL, BorderLineStyle.THIN);
            label = new Label(6, 1, "字体,颜色", wc);
            sheet.addCell(label);
            /*
             *
             * 定义公共字体格式 通过获取一个字体的样式来作为模板 首先通过web.getSheet(0)获得第一个sheet
             * 然后取得第一个sheet的第九列,第一行也就是"测试字体颜色"的字体
             */
            CellFormat cf = wwb.getSheet(0).getCell(6, 1).getCellFormat();
            label = new Label(7, 1, "通过模板", cf);
            sheet.addCell(label);
            /*
             * 合并单元格 通过writablesheet.mergeCells(int x,int y,int m,int n);
             * 表示将从第x+1列,y+1行到m+1列,n+1行合并
             */
            sheet.mergeCells(8,1,10,1);
            label = new Label(8,1,"测试单元格合并");
            sheet.addCell(label);

            // 写入数据
            wwb.write();
            // 关闭
            wwb.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     *
     * @param filePath 文件保存路径
     * @param fileName 文件名
     */
    public void readExcel(String filePath,String fileName){
        try{
            File file = new File(filePath+fileName); // 创建文件对象
            Workbook wb = Workbook.getWorkbook(file); // 从文件流中获取Excel工作区对象

            Sheet sheet = wb.getSheet(0); // 从工作区中取得页(Sheet)
            // 获取该工作表的行数,以供下面循环使用
             int rowNum = sheet.getRows();

             /*
              * 循环打印
              * i=1,i为0时打印的为表头
              */
            for (int i = 1; i < rowNum; i++) {
                /*
                 * 得到对应的值sheet.getCell(X, i).getContents()
                 * 得到X+1列的值
                 */
                String code = sheet.getCell(0,i).getContents();
                String name = sheet.getCell(1,i).getContents();
                String sex = sheet.getCell(2, i).getContents();
                String age = sheet.getCell(3, i).getContents();
                if(sex.equals("true")){
                    sex="男";
                }else{
                    sex="女";
                }
                System.out.println("编号"+code+",姓名"+name+",性别"+sex+",年龄"+age);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
时间: 2024-10-14 15:02:20

java excel文件的读写的相关文章

java基本文件的读写

import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.Reader;public class IORead { * @param

java中文件的读写

Java中文件读写操作的作用是什么?回答这个问题时应该先想到的是Java只是一门语言,我们的一种使用工具而已,这样答案就明晰了,就是将外来的各种数据写入到某一个文件中去,用以保存下来:或者从文件中将其数据读取出来,供我们使用.就如下电影过程,从网络资源中下载一部电影保存于你电脑中(写文件),当你想看的时候就用播放器打开(读文件).Java中如何对文件进行读写操作?先理一理,Java中的流分两种,字节流和字符流,其中字节流的两个基类是InputStream和OutputStream;字符流的两个基

Java Excel文件上传

需求,前端用户上传Excel文件,后台读取解析文件,做一系列处理后插入数据库. 1.前台代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>导入</title> </head> <style> .fileinput-button input { position: absolu

Python 使用selenium技术对Excel文件进行读写

Python 对Excel文件进行操作 1.创建Excel文件 2.向Excel文件中写入内容 3.读取Excel文件中的内容 4.在Excel文件中设置多个sheet页面 1.创建Excel文件 from openpyxl import Workbook wb = Workbook() #创建文件对象 ws = wb.active #获取第一个sheet ws.title="first" #设置sheet名称 wb.save("D:/test.xlsx") #保存

Java实现文件的读写,复制

1 import java.io.BufferedInputStream; 2 import java.io.BufferedOutputStream; 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.InputStream; 6 import java.io.OutputStream; 7 8 /** 9 * 测试文件的读取.写入.复制功能 10 * @package :

Java 实现文件随机读写-RandomAccessFile

RandomAccessFile是Java中输入,输出流体系中功能最丰富的文件内容访问类,它提供很多方法来操作文件,包括读写支持,与普通的IO流相比,它最大的特别之处就是支持任意访问的方式,程序可以直接跳到任意地方来读写数据. 如果我们只希望访问文件的部分内容,而不是把文件从头读到尾,使用RandomAccessFile将会带来更简洁的代码以及更好的性能. 下面来看下RandomAccessFile类中比较重要的2个方法,其他的和普通IO类似,在这里,就不详细说明了. 方法名 作用 getFil

JAVA中文件的读写 I/O 输入输出流

主要内容 1.编码问题 2.File类的使用 3.RandomAccessFile的使用 4.I/O 输入输出流 编码问题: 1 import java.io.UnsupportedEncodingException; 2 3 public class 编码问题 { 4 public static void main(String[] args) { 5 // 我们项目的默认编码是GBK 6 String s = "测试 ABC"; 7 byte[] byte1 = s.getByte

通过python对excel文件的读写操作

通过xlwt对excel执行写操作 需要安装并导入xlwt模块 1 def set_style(name, height, bold=False): #一个name参数,一个高度参数,默认不加粗 2 style = xlwt.XFStyle() # 初始化样式 3 font = xlwt.Font() # 为样式创建字体 4 font.name = name # 'Times New Roman' 5 font.bold = bold #加粗 6 font.color_index = 4 #颜色

python对excel文件的读写操作

import xlrd,xlwt data = xlrd.open_workbook('a.xlsx') #读 table = data.sheets()[0] data_list = [] data_list.extend(table.row_values(0)) for item in data_list: print item ################# # 写 data = xlwt.Workbook() table = data.add_sheet('b') table.wri