国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java實現讀取及生成Excel文件的方法

2024-07-13 10:15:04
字體:
來源:轉載
供稿:網友

本文實例講述了Java實現讀取及生成Excel文件的方法。分享給大家供大家參考,具體如下:

一、讀取Excel文件

需要先下載poi-3.0.1-FINAL-20070705.jar(點擊此處本站下載poi-3.0.1-FINAL-20070705.jar。)

ExcelExamRead.java

import java.io.File;import java.io.FileInputStream;import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class ExcelExamRead {/** 讀Excel文件內容 */public void showExcel(String excelName) {File file = new File(excelName);FileInputStream in = null;try {// 創建對Excel工作簿文件的引用in = new FileInputStream(file);HSSFWorkbook hwb = new HSSFWorkbook(in);HSSFSheet sheet = hwb.getSheet("myFirstExcel");// 根據指定的名字來引用此Excel中的有效工作表// 讀取Excel 工作表的數據System.out.println("下面是Excel文件" + file.getAbsolutePath() + "的內容:");HSSFRow row = null;HSSFCell cell = null;int rowNum = 0; // 行標int colNum = 0; // 列標for (; rowNum < 9; rowNum++) {// 獲取第rowNum行row = sheet.getRow((short) rowNum);for (colNum = 0; colNum < 5; colNum++) {cell = row.getCell((short) colNum);// 根據當前行的位置來創建一個單元格對象System.out.print(cell.getStringCellValue() + "/t");// 獲取當前單元格中的內容}System.out.println(); // 換行}in.close();} catch (Exception e) {System.out.println("讀取Excel文件" + file.getAbsolutePath() + "失敗:" + e);} finally {if (in != null) {try {in.close();} catch (IOException e1) {}}}}public static void main(String[] args) {ExcelExamRead excel = new ExcelExamRead();String excelName = "D:/ExcelExamRead.xls";excel.showExcel(excelName);}}

二、生成Excel文件

ExcelExamWrite.java:

import java.io.File;import java.io.FileOutputStream;import java.io.IOException;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.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hssf.util.Region;//創建Excel文件public class ExcelExamWrite {// 新建一個Excel文件,里面添加5行5列的內容,另外添加一個合并2行5列的大單元格以及一個合并2行1列的5個合并單元格。public void createExcel(String fileName) {File file = new File(fileName);// 創建excel文件對象FileOutputStream fOut = null;try {// 創建一個新的HSSFWorkbook對象HSSFWorkbook workbook = new HSSFWorkbook();// 創建一個Excel的工作表,可以指定工作表的名字HSSFSheet sheet = workbook.createSheet("myFirstExcel");// 創建字體,紅色、粗體HSSFFont font = workbook.createFont();font.setColor(HSSFFont.COLOR_RED);font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);HSSFFont font1 = workbook.createFont();// 創建字體,黑色、非粗體font1.setColor(HSSFFont.COLOR_NORMAL);font1.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);// 創建單元格的格式,如居中、左對齊等HSSFCellStyle cellStyle = workbook.createCellStyle();cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平方向上居中對齊// 垂直方向上居中對齊cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);cellStyle.setFont(font); // 設置字體HSSFCellStyle cellStyle1 = workbook.createCellStyle();cellStyle1.setAlignment(HSSFCellStyle.ALIGN_LEFT);cellStyle1.setFont(font1);// 下面將建立一個4行3列的表。第一行為表頭。int rowNum = 0;// 行標int colNum = 0;// 列標// 建立表頭信息HSSFRow row = sheet.createRow((short) rowNum); // 在索引0的位置創建行HSSFCell cell = null; // 單元格for (colNum = 0; colNum < 5; colNum++) {// 在當前行的colNum列上創建單元格cell = row.createCell((short) colNum);// 定義單元格為字符類型,也可以指定為日期類型、數字類型cell.setCellType(HSSFCell.CELL_TYPE_STRING);// 定義編碼方式,為了支持中文,這里使用了ENCODING_UTF_16cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellStyle(cellStyle); // 為單元格設置格式cell.setCellValue("表頭-第" + (colNum + 1) + "列"); // 添加內容至單元格}rowNum++;for (; rowNum < 5; rowNum++) {// 新建第rowNum行row = sheet.createRow((short) rowNum);for (colNum = 0; colNum < 5; colNum++) {// 在當前行的colNum位置創建單元格cell = row.createCell((short) colNum);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellStyle(cellStyle1);cell.setCellValue("表體-第" + rowNum + "行第" + (colNum + 1)+ "列");}}// 合并單元格// 先創建2行5列的單元格,然后將這些單元格合并為2個大單元格rowNum = 5;for (; rowNum < 9; rowNum++) {row = sheet.createRow((short) rowNum);for (colNum = 0; colNum < 5; colNum++) {// 在當前行的colNum位置創建單元格cell = row.createCell((short) colNum);}}// 建立第一個大單元格,高度為2,寬度為2rowNum = 5;colNum = 0;Region region = new Region(rowNum, (short) colNum, (rowNum + 1),(short) (colNum + 4));sheet.addMergedRegion(region);// 獲得第一個大單元格cell = sheet.getRow(rowNum).getCell((short) colNum);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellStyle(cellStyle);cell.setCellValue("合并行單元格");// 建立第二個大單元格,高度為2,寬度為3rowNum = 7;for (colNum = 0; colNum < 5; colNum++) {region = new Region(rowNum, (short) colNum, (rowNum + 1),(short) (colNum));sheet.addMergedRegion(region);// 獲得第二個大單元格cell = sheet.getRow(rowNum).getCell((short) colNum);cell.setEncoding(HSSFCell.ENCODING_UTF_16);cell.setCellStyle(cellStyle);cell.setCellValue("合并列單元格");}// 新建一輸出文件流fOut = new FileOutputStream(file);// 將創建的內容寫到指定的Excel文件中workbook.write(fOut);fOut.flush();fOut.close();// 操作結束,關閉文件System.out.println("Excel文件創建成功!/nExcel文件的存放路徑為:"+ file.getAbsolutePath());} catch (Exception e) {System.out.println("Excel文件" + file.getAbsolutePath()+ "創建失敗/n其原因為:" + e);} finally {if (fOut != null) {try {fOut.close();} catch (IOException e1) {}}}}public static void main(String[] args) throws Exception {ExcelExamWrite excel = new ExcelExamWrite();String fileName = "e:/ExcelExamWrite.xls";excel.createExcel(fileName);}}

 

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀宁县| 木兰县| 都匀市| 镇坪县| 金平| 万山特区| 德庆县| 三江| 陈巴尔虎旗| 丹东市| 宁武县| 镇远县| 神池县| 自治县| 扎鲁特旗| 古丈县| 丰城市| 凌源市| 澄江县| 塔河县| 河曲县| 陵水| 巩义市| 布尔津县| 潢川县| 加查县| 黑河市| 响水县| 宁夏| 庆阳市| 油尖旺区| 托克托县| 会宁县| 罗江县| 登封市| 平原县| 英德市| 盐池县| 炎陵县| 桐乡市| 新河县|