`
flamenco
  • 浏览: 41887 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java使用POI 动态创建excel table表格样式等

阅读更多

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPalette;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;


public class MSExcelManager {

	/*
	 * Excel文档
	 */
	private HSSFWorkbook workBook;

	private HSSFSheet sheet;

	private HSSFRow row = null;

	private HSSFCell cell = null;

	private short encoding = HSSFWorkbook.ENCODING_UTF_16;
	private int cellType = HSSFCell.CELL_TYPE_STRING;
	private HSSFCellStyle titleStyle;
	private HSSFCellStyle titleStyle1;
	private HSSFCellStyle titleStyle2;
	private HSSFCellStyle tableStyle;
	private HSSFCellStyle contentStyle;
	private HSSFCellStyle footStyle;
	private Region region;
	private HSSFPalette palette;

	public MSExcelManager() {

		workBook = new HSSFWorkbook();
		sheet = workBook.createSheet();
		workBook.setSheetName(0, "在线专家监控日志", encoding);
		sheet.setVerticallyCenter(true);
		sheet.setDefaultColumnWidth((short) 10);
		// sheet.setDefaultRowHeightInPoints(21.75f);
		palette = getColorStyle();
		titleStyle = getTitleStyle();
		titleStyle1 = getTitleStyle((short) 9);
		titleStyle2 = getTitleStyle((short) 10);
		tableStyle = getTableStyle();
		contentStyle = getContentStyle();
		footStyle = getFootStyle();
	}

	public static void test() {

		String filePath = "F:\\workspace\\webapp\\template\\telpate_test.xls";

		FileInputStream fis;
		try {
			fis = new FileInputStream(filePath);
			POIFSFileSystem fs = new POIFSFileSystem(fis);
			HSSFWorkbook wb = new HSSFWorkbook(fs);
			HSSFSheet sheet = wb.getSheetAt(0);

			// Iterate over each row in the sheet
			Iterator rows = sheet.rowIterator();
			HSSFRow row = null;
			for (; rows.hasNext();) {
				row = (HSSFRow) rows.next();
				System.out.println("Row #" + row.getRowNum());
				// Iterate over each cell in the row and print out the cell"s
				// content
				Iterator cells = row.cellIterator();
				HSSFCell cell = null;
				for (; cells.hasNext();) {
					cell = (HSSFCell) cells.next();
					System.out.println("Cell #" + cell.getCellNum() + " "
							+ cell.getCellStyle());

					switch (cell.getCellType()) {
					case HSSFCell.CELL_TYPE_NUMERIC:
						System.out.println(cell.getNumericCellValue());
						break;
					case HSSFCell.CELL_TYPE_STRING:
						System.out.println(cell.getStringCellValue());
						break;
					case HSSFCell.CELL_TYPE_BOOLEAN:
						System.out.println(cell.getBooleanCellValue());
						break;
					case HSSFCell.CELL_TYPE_FORMULA:
						System.out.println(cell.getCellFormula());
						break;
					default:
						System.out.println("unsuported sell type");
						break;
					}
				}
			}

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		// test();

		List<ExpertConsult> vistorList = new ArrayList<ExpertConsult>();
		ExpertConsult expertConsult11 = null;
		for (int i = 1; i <= 17; i++) {
			expertConsult11 = new ExpertConsult();
			expertConsult11.setTimePoint("08:30");
			expertConsult11.setTimePointTotal(2 * i);
			vistorList.add(expertConsult11);
		}

		List<ExpertConsult> expertList = new ArrayList<ExpertConsult>();
		ExpertConsult expertConsult1 = null;
		for (int i = 1; i <= 12; i++) {

			expertConsult1 = new ExpertConsult();
			expertConsult1.setId(i);
			expertConsult1.setName("张三四" + i);
			expertConsult1.setLoginTime("2011-01-04 12:30:47");
			expertConsult1.setLoginOutTime("2011-01-04 13:30:59");
			expertConsult1.setAllNum(10);
			expertConsult1.setReplyNum(3);
			expertConsult1.setUnreplyNum(7);
			expertList.add(expertConsult1);
		}

		MSExcelManager msExcel = new MSExcelManager();

		String path = "F:\\workspace\\webcallSYWG6.0\\webapp\\template\\export\\"
				+ new Date().getTime() + ".xls";

		msExcel.write(msExcel.exportExcel(vistorList, expertList, null), path);
	}

	public HSSFPalette getColorStyle() {
		HSSFPalette palette = workBook.getCustomPalette();
		palette.setColorAtIndex((short) 9, (byte) (182), (byte) (221),
				(byte) (232));
		palette.setColorAtIndex((short) 10, (byte) (252), (byte) (213),
				(byte) (180));
		return palette;

	}

	/**
	 * 第一行的样式
	 * 
	 * @return
	 */
	public HSSFCellStyle getFirstStyle() {

		HSSFCellStyle style = workBook.createCellStyle();
		HSSFFont font = workBook.createFont();
		font.setFontName("Arial");
		font.setFontHeightInPoints((short) 18);// 设置字体大小
		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
		style.setWrapText(true);
		style.setFont(font);
		return style;
	}

	/**
	 * 标题行样式
	 * 
	 * @return
	 */
	public HSSFCellStyle getTitleStyle() {

		HSSFCellStyle style = workBook.createCellStyle();
		HSSFFont font = workBook.createFont();
		font.setFontName("Arial");
		font.setFontHeightInPoints((short) 12);// 设置字体大小
		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上线居中
		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
		style.setBorderRight(HSSFCellStyle.BORDER_THIN);
		style.setBorderTop(HSSFCellStyle.BORDER_THIN);
		style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
		style.setWrapText(true);
		style.setFont(font);
		return style;
	}

	/**
	 * 蓝色样式
	 * 
	 * @return
	 */
	public HSSFCellStyle getTitleStyle(short index) {

		HSSFCellStyle style = workBook.createCellStyle();
		HSSFFont font = workBook.createFont();
		font.setFontName("Arial");
		font.setFontHeightInPoints((short) 12);// 设置字体大小
		font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上线居中
		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
		style.setBorderRight(HSSFCellStyle.BORDER_THIN);
		style.setBorderTop(HSSFCellStyle.BORDER_THIN);
		style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
		style.setWrapText(true);
		style.setFont(font);
		style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
		style.setFillForegroundColor(index);
		return style;
	}

	/**
	 * 表格样式
	 * 
	 * @return
	 */
	public HSSFCellStyle getTableStyle() {

		HSSFCellStyle style = workBook.createCellStyle();
		HSSFFont font = workBook.createFont();
		font.setFontName("Arial");
		font.setFontHeightInPoints((short) 12);// 设置字体大小
		font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上线居中
		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
		style.setBorderRight(HSSFCellStyle.BORDER_THIN);
		style.setBorderTop(HSSFCellStyle.BORDER_THIN);
		style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
		style.setWrapText(true);
		style.setFont(font);
		return style;
	}

	/**
	 * 文本样式
	 * 
	 * @return
	 */
	public HSSFCellStyle getContentStyle() {
		HSSFCellStyle style = workBook.createCellStyle();
		HSSFFont font = workBook.createFont();
		font.setFontName("Arial");
		font.setFontHeightInPoints((short) 12);
		font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上线居中
		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
		style.setBorderRight(HSSFCellStyle.BORDER_THIN);
		style.setBorderTop(HSSFCellStyle.BORDER_THIN);
		style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
		style.setWrapText(true);
		style.setFont(font);
		return style;
	}

	/**
	 * 底部,签名样式
	 * 
	 * @return
	 */
	public HSSFCellStyle getFootStyle() {

		HSSFCellStyle style = workBook.createCellStyle();
		HSSFFont font = workBook.createFont();
		font.setFontName("Arial");
		font.setFontHeightInPoints((short) 11);// 设置字体大小
		style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
		style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
		style.setFont(font);
		return style;
	}

	public void createRow(int currentRow, int rowNum, int colNum,
			HSSFCellStyle style) {

		for (int rowIndex = currentRow; rowIndex < rowNum; rowIndex++) {
			row = sheet.createRow(rowIndex);
			for (short cellIndex = 0; cellIndex < colNum; cellIndex++) {
				cell = row.createCell(cellIndex);
				cell.setEncoding(encoding);
				if (style != null) {
					cell.setCellStyle(style);
				}
				cell.setCellType(cellType);
				cell.setCellValue("");
			}
		}
	}

	public HSSFRow getRow(int rowIndex) {
		return sheet.getRow(rowIndex);
	}

	public void setValue(int rowIndex, int colIndex, String value,
			HSSFCellStyle style, int type) {
		HSSFRow row = sheet.getRow(rowIndex);
		HSSFCell cell = row.getCell((short) colIndex);
		cell.setCellType(type);
		if (style != null) {
			cell.setCellStyle(style);
		}
		cell.setCellValue(value);
	}

	public int getLastRowNum() {
		return sheet.getLastRowNum();
	}

	public void mergedRegion(int rowFrom, int colFrom, int rowTo, int colTo) {
		region = new Region(rowFrom, (short) colFrom, rowTo, (short) colTo);
		sheet.addMergedRegion(region);
	}

	public String getTitle() {

		StringBuffer title = new StringBuffer();

		Calendar calendar = Calendar.getInstance();
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH) + 1;
		int day = calendar.get(Calendar.DATE);
		int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
		String weekStr[] = new String[] { "日", "一", "二", "三", "四", "五", "六" };

		title.append("监控日志——专家在线(");
		title.append(year + "年");
		title.append(month + "月");
		title.append(day + "日 周");
		title.append(weekStr[week] + ")");
		return title.toString();
	}

	/**
	 * 报表导出excel格式
	 * 
	 * @param vistorList
	 * @param expertList
	 * @return
	 */
	public HSSFWorkbook exportExcel(List<ExpertConsult> vistorList,
			List<ExpertConsult> expertList, String title) {

		// 创建标题行,1行10列
		createRow(0, 1, 10, getFirstStyle());
		getRow(0).setHeightInPoints((short) 35);
		// 合并标题行
		mergedRegion(0, 0, 0, 9);
		// 填充标题行
		if (title == null || title.equals("")) {
			setValue(0, 0, getTitle(), null, cellType);
		} else {
			setValue(0, 0, title, null, cellType);
		}

		// 创建访客表格,6行10列
		createRow(1, 7, 10, tableStyle);
		// 合并首列
		mergedRegion(1, 0, 6, 0);
		// 设置标题行
		setValue(1, 0, "在线\n人数\n登记", titleStyle, cellType);

		setValue(1, 1, "时间", titleStyle, cellType);
		setValue(1, 2, "08:30", titleStyle1, cellType);
		setValue(1, 3, "09:00", titleStyle1, cellType);
		setValue(1, 4, "09:30", titleStyle1, cellType);
		setValue(1, 5, "10:00", titleStyle1, cellType);
		setValue(1, 6, "10:30", titleStyle1, cellType);
		setValue(1, 7, "11:00", titleStyle1, cellType);
		setValue(1, 8, "11:30", titleStyle1, cellType);
		setValue(1, 9, "12:00", titleStyle1, cellType);
		setValue(2, 1, "人数", titleStyle, cellType);
		setValue(3, 1, "时间", titleStyle, cellType);
		setValue(3, 2, "12:30", titleStyle1, cellType);
		setValue(3, 3, "13:00", titleStyle1, cellType);
		setValue(3, 4, "13:30", titleStyle1, cellType);
		setValue(3, 5, "14:00", titleStyle1, cellType);
		setValue(3, 6, "14:30", titleStyle1, cellType);
		setValue(3, 7, "15:00", titleStyle1, cellType);
		setValue(3, 8, "15:30", titleStyle1, cellType);
		setValue(3, 9, "16:00", titleStyle1, cellType);
		setValue(4, 1, "人数", titleStyle, cellType);
		setValue(5, 1, "时间", titleStyle, cellType);
		setValue(5, 2, "16:30", titleStyle1, cellType);
		setValue(5, 3, "17:00", titleStyle1, cellType);
		setValue(5, 4, "17:30", titleStyle1, cellType);
		setValue(5, 5, "18:00", titleStyle1, cellType);
		setValue(5, 6, "18:30", titleStyle1, cellType);
		setValue(5, 7, "19:00", titleStyle1, cellType);
		setValue(5, 8, "19:30", titleStyle1, cellType);
		setValue(5, 9, "20:00", titleStyle1, cellType);
		setValue(6, 1, "人数", titleStyle, cellType);

		ExpertConsult vistor = null;
		// 动态设置统计访客人数
		if (vistorList != null && !vistorList.isEmpty()) {
			for (int i = 0; i < vistorList.size(); i++) {
				vistor = vistorList.get(i);
				setValue(i / 8 * 2 + 2, (i % 8 + 2), vistor.getTimePointTotal()
						+ "", contentStyle, cellType);
			}
		}
		// 创建在线专家表格,1行10列
		createRow(7, 8, 10, tableStyle);
		int lastRowNum = getLastRowNum();
		// 设置标题行
		setValue(lastRowNum, 0, "专家\n考核", titleStyle, cellType);
		setValue(lastRowNum, 1, "姓名", titleStyle2, cellType);
		setValue(lastRowNum, 2, "上线时间", titleStyle2, cellType);
		setValue(lastRowNum, 3, "下线时间", titleStyle2, cellType);
		setValue(lastRowNum, 4, "提答数量", titleStyle2, cellType);
		setValue(lastRowNum, 5, "回答数量", titleStyle2, cellType);
		setValue(lastRowNum, 6, "回答率", titleStyle2, cellType);
		setValue(lastRowNum, 7, "回答质量", titleStyle2, cellType);
		setValue(lastRowNum, 8, "实际回答时间", titleStyle2, cellType);

		if (expertList != null && !expertList.isEmpty()) {
			createRow(8, 8 + expertList.size(), 10, tableStyle);
		} else {
			createRow(8, 9, 10, tableStyle);
		}

		lastRowNum = getLastRowNum();
		// 合并首列
		mergedRegion(7, 0, lastRowNum, 0);
		for (int i = 7; i <= lastRowNum; i++) {
			// 合并尾列
			mergedRegion(i, 8, i, 9);
		}

		int totalAllNum = 0;
		int totalReplyNum = 0;
		double totalReplyRate = 0.00d;
		NumberFormat percentFormat = NumberFormat.getPercentInstance();
		percentFormat.setMaximumIntegerDigits(2);
		percentFormat.setMaximumFractionDigits(2);

		ExpertConsult expert = null;
		// 动态设置在线专家信息
		if (expertList != null && !expertList.isEmpty()) {
			for (int i = 0; i < expertList.size(); i++) {
				expert = expertList.get(i);
				String loginTime = expert.getLoginTime();
				if (loginTime == null || loginTime.equals("")) {
					loginTime = "--";
				} else {
					loginTime = loginTime.substring(11, 16);
				}

				String loginOutTime = expert.getLoginOutTime();
				if (loginOutTime == null || loginOutTime.equals("")) {
					loginOutTime = "--";
				} else {
					loginOutTime = loginOutTime.substring(11, 16);
				}
				setValue(8 + i, 1, expert.getName(), contentStyle, cellType);
				setValue(8 + i, 2, loginTime, contentStyle, cellType);
				setValue(8 + i, 3, loginOutTime, contentStyle, cellType);
				setValue(8 + i, 4, expert.getAllNum() + "", contentStyle,
						cellType);
				setValue(8 + i, 5, expert.getReplyNum() + "", contentStyle,
						cellType);			
				BigDecimal b = new BigDecimal(expert.getReplyRate()); 
				double bb = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
				setValue(8 + i, 6, bb + "%",contentStyle, cellType);
				totalAllNum += expert.getAllNum();
				totalReplyNum += expert.getReplyNum();
			}
		}
		if (totalAllNum > 0) {
			totalReplyRate = (double) totalReplyNum / (double) totalAllNum
					* 100;
		}
		BigDecimal b = new BigDecimal(totalReplyRate); 
		totalReplyRate = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();

		// 创建统计部分
		createRow(lastRowNum + 1, lastRowNum + 5, 10, tableStyle);

		// lastRowNum = getLastRowNum();
		mergedRegion(lastRowNum + 1, 0, lastRowNum + 4, 0);

		mergedRegion(lastRowNum + 1, 1, lastRowNum + 2, 3);
		mergedRegion(lastRowNum + 1, 4, lastRowNum + 2, 6);
		mergedRegion(lastRowNum + 1, 7, lastRowNum + 2, 9);

		mergedRegion(lastRowNum + 3, 1, lastRowNum + 4, 3);
		mergedRegion(lastRowNum + 3, 4, lastRowNum + 4, 6);
		mergedRegion(lastRowNum + 3, 7, lastRowNum + 4, 9);

		setValue(lastRowNum + 1, 0, "回答\n问题\n情况", titleStyle, cellType);
		setValue(lastRowNum + 1, 1, "当天提问总量", titleStyle2, cellType);
		setValue(lastRowNum + 1, 4, "当天回答总量", titleStyle2, cellType);
		setValue(lastRowNum + 1, 7, "回答率", titleStyle2, cellType);

		setValue(lastRowNum + 3, 1, totalAllNum + "", contentStyle, cellType);
		setValue(lastRowNum + 3, 4, totalReplyNum + "", contentStyle, cellType);
		
		setValue(lastRowNum + 3, 7, totalReplyRate + "%", contentStyle,
				cellType);
		

		lastRowNum = getLastRowNum();
		createRow(lastRowNum + 1, lastRowNum + 6, 10, footStyle);
		mergedRegion(lastRowNum + 2, 5, lastRowNum + 2, 6);
		setValue(lastRowNum + 2, 5, "责任编辑签名:", footStyle, cellType);
		setValue(lastRowNum + 2, 7, "(日)", footStyle, cellType);

		mergedRegion(lastRowNum + 3, 5, lastRowNum + 3, 6);
		setValue(lastRowNum + 3, 7, "(夜)", footStyle, cellType);

		mergedRegion(lastRowNum + 5, 5, lastRowNum + 5, 6);
		setValue(lastRowNum + 5, 5, "日期:", footStyle, cellType);

		setValue(lastRowNum + 5, 7, "年", footStyle, cellType);
		setValue(lastRowNum + 5, 8, "月", footStyle, cellType);
		setValue(lastRowNum + 5, 9, "日", footStyle, cellType);
		return workBook;
	}

	public void write(HSSFWorkbook workBook, String path) {

		FileOutputStream fos;
		try {
			fos = new FileOutputStream(path);
			workBook.write(fos);
			fos.flush();
			fos.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


  • 大小: 95.6 KB
2
2
分享到:
评论
1 楼 lmjavajas 2012-04-01  
很有帮助,将代码打包给精简的例子就更好啦

相关推荐

    java复杂模板excel导出例子

    2. **创建Excel模板**: 使用Microsoft Excel设计好所需的模板,可以包含各种格式(如文本、数字、日期、公式、条件格式等)、样式(字体、颜色、边框、填充)和图表。 3. **读取模板**: 在Java代码中,使用`...

    poi 将echar报表生成到word table表格中

    - 表格样式:使用POI提供的方法可以设置表格、行和单元格的样式,如边框、字体、颜色等。 - 动态更新:如果数据是动态的,你需要确保在每次生成Word文档时都更新图表和表格。 - 错误处理:处理可能出现的异常,如...

    解决POI事件驱动模式读取不到Java代码创建的Excel表格数据问题

    然而,在特定情况下,使用POI的事件驱动模式可能会遇到读取问题,特别是当处理由Java代码直接创建而未经软件如Microsoft Excel或WPS Excel保存的Excel文件时。 问题的核心在于两个方面: 1. 动态获取rId:在Excel...

    利用java访问excel(用excel文件格式显示)

    在Java中,我们可以使用Apache POI来创建、读取和修改Excel工作簿。 1. **读取Excel数据**: 使用Apache POI,我们首先需要导入相应的库,如`poi-ooxml`和`poi-ooxml-schemas`。接着,创建一个`Workbook`对象,...

    Java POI读取word生成

    Java POI是一个强大的库,主要用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在Java编程中,使用POI库可以实现自动化操作,例如读取、创建、修改和展示这些文件。在这个场景中,我们关注的是如何...

    页面html Table表格导出Execl

    创建Excel文件可能需要使用如`xlsx`、`js-xlsx`等JavaScript库。 5. **文件下载**:在浏览器环境下,不能直接创建本地文件。但可以通过创建一个`Blob`对象,然后创建一个URL引用,利用`a`标签的`download`属性触发...

    将jsp显示的table表格转换成excl文档

    在提供的压缩包文件"java将table表格导成excl文档"中,很可能包含了实现这个功能的Java代码示例。通过查看和学习这些代码,你可以更好地理解如何将JSP表格转换为Excel的实际操作。记住,为了确保代码的安全性和兼容...

    安卓使用smartTable生成表格

    在读取Excel文件时,你需要使用Apache POI库解析文件,然后将数据传递给SmartTable。这个过程涉及到解析工作簿、工作表,以及将单元格数据转换为适合表格显示的格式。 ```java // 读取Excel文件 FileInputStream ...

    poi读写word模板/JAVA生成word包

    在Java开发中,Apache POI 是一个非常重要的库,它允许开发者处理Microsoft Office格式的文件,包括Word(.doc和.docx)、Excel(.xls和.xlsx)和PowerPoint(.ppt和.pptx)。本教程将专注于使用Apache POI进行Word...

    大数据Excel通过POI导入数据库通用设计方案

    3. **动态适配**:通过规则配置,系统能适应不同Excel样式和数据类型的变化,无需每次修改代码。 二、导入规则表设计 1. **数据导入表规则(data_import_table_rule)**: - ID:主键,用于唯一标识一条规则。 - ...

    JAVA导出到excel、PDF的源代码

    接着,他们可以使用Paragraph、Table、Font等对象来添加文本、表格和样式。例如,使用Paragraph.add()方法插入文本,Table.addCell()方法添加单元格,Font.setFamily()方法设置字体。为了导出数据,开发者可能会遍历...

    分多个sheet导出excel

    在Java编程中,Apache POI库是一个非常流行的API,它允许开发者读取、创建和修改Microsoft Office格式的文件,包括Excel。本篇文章将详细介绍如何利用Apache POI来分多个sheet导出Excel文件。 首先,我们需要引入...

    jxls使用模板实现导出excel!

    它引入了一种基于模板的方法,使得动态创建和更新Excel文件变得简单,类似于我们在HTML和JSP中使用JSTL标签的方式。 2. **Apache POI简介**: Apache POI是Apache软件基金会的一个开源项目,提供了API来读写...

    java word导出功能实现

    Apache POI库是Java开发者用来处理Microsoft Office格式文件(如Word、Excel)的一个强大工具,尤其在读取和写入Word文档方面表现优秀。本教程将深入探讨如何使用Apache POI实现Java中导出符合特定模板格式的Word...

    jsp读取Excel中的数据,以表格形式展现出来

    本篇文章将详细讲解如何使用JavaServer Pages(JSP)来读取Excel文件中的数据,并以表格的形式在网页上展示,同时考虑字体和背景的样式。 首先,我们需要了解JSP的基础知识。JSP是一种基于Java的动态网页技术,允许...

    excel表格自由绘制边框优质资料.doc

    可以使用Apache POI库等Java库来直接生成Excel文件,提供更复杂的格式控制和功能。 下面是一个简单的JSP页面导出到Excel的示例: ```java response.setContentType("application/vnd.ms-excel"); response.set...

    JSP页面导出EXCEL简单方法

    5. **生成Excel文件内容**:可以使用Apache POI库,这是一个强大的Java API,专门用于操作Microsoft Office格式的文件,包括Excel。通过POI,我们可以创建`HSSFWorkbook`对象,然后创建工作表(`HSSFSheet`),再在...

    word内容提取 word转html-POI wps doc docx转html

    对于复杂的样式,可能需要使用JavaScript库如jQuery或现代前端框架如React、Vue等来增强交互性和动态性。 7. **WPS、DOC、DOCX的兼容性**:WPS是金山软件推出的办公软件,其文档格式与微软的Word高度兼容。Apache ...

    java生成word的实例 java导出Word文档的实例.rar

    本实例将探讨如何使用Java技术来创建和导出Word文档。主要涉及的技术栈包括Apache POI库,它是一个强大的API,允许开发者处理Microsoft Office格式的文件,包括Word(.doc和.docx)。 Apache POI提供了HSSF和XSSF两...

    JSP导出excel和pdf格式

    3. **添加内容**:通过`Paragraph`、`Table`等对象,向PDF文档中添加文本、表格等元素。iText提供了丰富的API来控制样式和布局。 4. **创建PDF writer**:使用`PdfWriter`实例将文档写入输出流,通常为HTTP响应流。...

Global site tag (gtag.js) - Google Analytics