现在的位置: 首页 > 综合 > 正文

向Excel表格中写数据

2018年05月14日 ⁄ 综合 ⁄ 共 2571字 ⁄ 字号 评论关闭

一、

     1、实现本功能需要Apache poi 的包,到官网上下载最新的jar包添加到项目中就行,本文采用的版本为poi-3.10.1-20140818.jar,把官网上下载的bin文件解压,找到这个包放进项目就行,其他包是为其他文档提供的。

二、

     完整例子如下:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

public class WriteToExcel {

	public static void main(String[] args) {
		try {
			//新建一个Excel 文件
			FileOutputStream out;
			out = new FileOutputStream("workbook.xls");
			Workbook wb = new HSSFWorkbook();
			Sheet s = wb.createSheet();
			//声明一个行对象和单元格对象
			Row r = null;
			Cell c = null;
			//创建三种单元格样式
			CellStyle cs = wb.createCellStyle();
			CellStyle cs2 = wb.createCellStyle();
			CellStyle cs3 = wb.createCellStyle();
			//创建数据格式化对象化对象
			DataFormat df = wb.createDataFormat();
			//创建两种字体
			Font f = wb.createFont();
			Font f2 = wb.createFont();

			// 设置字体一的大小为12
			f.setFontHeightInPoints((short) 12);
			// 设置字体为蓝色
			f.setColor((short) 0xc);
			// 设置边框
			f.setBoldweight(Font.BOLDWEIGHT_BOLD);

			//设置字体二
			f2.setFontHeightInPoints((short) 10);
			f2.setColor((short) Font.COLOR_RED);
			f2.setBoldweight(Font.BOLDWEIGHT_BOLD);
            //添加删除线
			f2.setStrikeout(true);

			cs.setFont(f);
			cs.setDataFormat(df.getFormat("#,##0.0"));

			cs2.setBorderBottom(CellStyle.BORDER_THIN);
			cs2.setFillPattern((short) CellStyle.SOLID_FOREGROUND);
			cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
			cs2.setFont(f2);

			wb.setSheetName(0, "HSSF Test");
			
			/*
			 * 以下代码添加了30行数据,每行10条数据
			 */
			int rownum;
			for (rownum = (short) 0; rownum < 30; rownum++) {
				r = s.createRow(rownum);
				if ((rownum % 2) == 0) {	
					r.setHeight((short) 0x249);
				}

				for (short cellnum = (short) 0; cellnum < 10; cellnum += 2) {

					c = r.createCell(cellnum);
					c.setCellValue(rownum
							* 10000
							+ cellnum
							+ (((double) rownum / 1000) + ((double) cellnum / 10000)));


					c = r.createCell((short) (cellnum + 1));
					if ((rownum % 2) == 0) {
						c.setCellStyle(cs);
						c.setCellValue("Test");
					} else {
						c.setCellStyle(cs2);
						c.setCellValue("\u0422\u0435\u0441\u0442");
					}
					s.setColumnWidth((short) (cellnum + 1),
							(short) ((50 * 8) / ((double) 1 / 20)));
				}
			}


            /**
             * 空出两行,设置50个单元格的下边框为加粗的黑线
             */
			rownum++;
			rownum++;

			r = s.createRow(rownum);

			cs3.setBorderBottom(CellStyle.BORDER_THICK);

			// create 50 cells
			for (short cellnum = (short) 0; cellnum < 50; cellnum++) {
				c = r.createCell(cellnum);
				c.setCellStyle(cs3);
			}


			/**
			 * 创建一张sheet ,然后删除
			 */
			s = wb.createSheet();
			wb.setSheetName(1, "DeletedSheet");
			wb.removeSheetAt(1);
			
			/**
			 * 将数据写入文件中,然后关闭
			 */
			wb.write(out);
			out.close();
				
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

抱歉!评论已关闭.