POI 讀取excel模版並填寫資料
POI依賴的jar包:
<org.apache.poi.version>3.10-FINAL</org.apache.poi.version>
<!-- POI的jar包--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>${org.apache.poi.version}</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>${org.apache.poi.version}</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>${org.apache.poi.version}</version> </dependency>
java POI讀取excel模版並填寫資料程式碼:
public class ExportExcelDemo { private HSSFWorkbook workbook = null; /** * 顯示的匯出表的標題 */ private String title; /** * 匯出表的列名 */ private String[] rowName; private List<Object[]> dataList = new ArrayList<>(); /** * 構造方法,傳入要匯出的資料 * * @param title * @param rowName * @param dataList */ public ExportExcelDemo(String title, String[] rowName, List<Object[]> dataList) { this.dataList = dataList; this.rowName = rowName; this.title = title; } /** * 判斷檔案的sheet是否存在 * @param filePath 檔案路徑 * @param sheetName 表格索引名 * @return */ public boolean sheetExist(String filePath,String sheetName){ boolean flag = false; File file = new File(filePath); if(file.exists()) { //檔案存在 //建立workbook try { workbook = new HSSFWorkbook(new FileInputStream(file)); //新增Worksheet(不新增sheet時生成的xls檔案開啟時會報錯) HSSFSheet sheet = workbook.getSheet(sheetName); if(sheet!=null) flag = true; } catch (Exception e) { e.printStackTrace(); } }else{ //檔案不存在 flag =false; } return flag; } /** * *(2003 xls字尾 匯出) * @param TODO * @return void 返回型別 * @author xsw * @2016-12-7上午10:44:00 */ public static void createXLS(String importFilePath,String exportFilePath) throws IOException{ try { //excel模板路徑 File fi=new File(importFilePath); POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fi)); //讀取excel模板 HSSFWorkbook wb = new HSSFWorkbook(fs); //讀取了模板內所有sheet內容 HSSFSheet sheet = wb.getSheetAt(0); //如果這行沒有了,整個公式都不會有自動計算的效果的 sheet.setForceFormulaRecalculation(true); //在相應的單元格進行賦值 HSSFCell cell = sheet.getRow(11).getCell(6);//第11行 第6列 cell.setCellValue(1); HSSFCell cell2 = sheet.getRow(11).getCell(7); cell2.setCellValue(2); sheet.getRow(12).getCell(6).setCellValue(12); sheet.getRow(12).getCell(7).setCellValue(12); //修改模板內容匯出新模板 FileOutputStream out = new FileOutputStream(exportFilePath); wb.write(out); out.close(); }catch (Exception e) { System.out.println("檔案讀取錯誤!"); } } /** * *(2007 xlsx字尾 匯出) * @param * @return void 返回型別 * @author xsw * @2016-12-7上午10:44:30 */ public static void createXLSX(String importFilePath,String exportFilePath) throws IOException{ //excel模板路徑 File fi=new File(importFilePath); InputStream in = new FileInputStream(fi); //讀取excel模板 XSSFWorkbook wb = new XSSFWorkbook(in); //讀取了模板內所有sheet內容 XSSFSheet sheet = wb.getSheetAt(0); //如果這行沒有了,整個公式都不會有自動計算的效果的 sheet.setForceFormulaRecalculation(true); //在相應的單元格進行賦值 XSSFCell cell = sheet.getRow(11).getCell(6);//第12行 第7列 cell.setCellValue(1); XSSFCell cell2 = sheet.getRow(11).getCell(7); cell2.setCellValue(2); sheet.getRow(12).getCell(6).setCellValue(3); sheet.getRow(12).getCell(7).setCellValue(4); //修改模板內容匯出新模板 FileOutputStream out = new FileOutputStream(exportFilePath); wb.write(out); out.close(); } /** * @param @param file * @param @return * @param @throws IOException * @return List<String> (excel每行拼接成List中的String) * @throws * @Title: readExcel * @Description: TODO(對外提供讀取excel 的方法) */ public static synchronized void readExcel(String importFilePath,String exportFilePath) throws IOException { File file=new File(importFilePath); String fileName = file.getName(); //List<String> list = new ArrayList<String>(); //根據其名稱獲取字尾 String extension = fileName.lastIndexOf(".") == -1 ? "" : fileName .substring(fileName.lastIndexOf(".") + 1); if ("xls".equals(extension)) { read2003Excel(new FileInputStream(file),exportFilePath); } else if ("xlsx".equals(extension) || "xlsm".equals(extension)) { read2007Excel(new FileInputStream(file),exportFilePath); } else if ("tmp".equals(extension)) { read2007Excel(new FileInputStream(file),exportFilePath); } else { throw new IOException("不支援的檔案型別"); } } public static void main(String[] args) throws IOException{ //excle 2007 String importFilePath= "/Users/dataDemo.xlsx"; String exportFilePath= "/Users/test2.xlsx"; //createXLSX(importFilePath,exportFilePath); readExcel(importFilePath,exportFilePath); } }
相關推薦
POI 讀取excel模版並填寫資料
POI依賴的jar包: <org.apache.poi.version>3.10-FINAL</org.apache.poi.version> <!-- POI的jar包--> <depe
在controller層中使用poi讀取excel表格中的資料
需求:需要對一個Excel表格中的資料,批量新增到資料庫中 1.首先在JSP頁面中可以寫出來,選擇檔案的按鈕, <!--批量匯入--> <div id="dgBatchImport" class="easyui-dialog" title="批量匯入檔案
poi 匯入Excel封裝 並處理資料型別
最近正在做OA,需求需要匯入匯出EXCEL ,功能和方法使用起來挺簡單,做起來發現型別問題比較坑,自己稍微封裝了一下, 大致功能就是 通過傳入實體類的class物件和 Sheet 工作簿物件獲取 從Excel檔案中獲取,實體類集合。 excel2003的
小例子:java利用poi讀取excel中資料並匯入資料庫
問題描述: 資料夾下有若干excel檔案,檔名為10.教育局.xls 11.衛生院.xls ................有很多;中間的漢字為單位名稱,需要匯入資料庫,每個單位名稱要有一個單位id匹配;每個excel中有若干個sheet頁的名字,每個名字即為科
POI讀取Excel數據保存到數據庫,並反饋給用戶處理信息
equal 讀取 cor scrip name gmv prope HR 後綴 今天遇到這麽一個需求,將課程信息以Excel的形式導入數據庫,並且課程編號再數據庫中不能重復,也就是我們需要先讀取Excel提取信息之後保存到數據庫,並將處理的信息反饋給用戶。於是想
10、利用POI讀取excel資料
自動化指令碼和資料是分離的,這裡是通過POI來實現excel的資料讀取的。 以下實現的是1個excel sheet表中可以分作多個表,判斷一個表是否結束是根據空格來的。 程式碼為: package common;import java.util.ArrayList;import java.
Java使用Poi讀取Excel資料(exor)
讀取Excel使用一個小工具exor exor是一個開源專案,封裝了一些poi讀取excel的操作,可以讀取excel資料並格式化為二維結構 xlsx和xls格式都可以讀取 exor的依賴:commons-collections4-4.2、poi-3.17、poi-oo
java poi讀取excel表格資料
package com.tl.web.signup.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.i
java使用poi讀取excel表格資料工具類
package com.eyric.excel; import java.io.*; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; import
使用POI讀取Excel資料入庫
首先先新增poi的依賴 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> &l
Java使用poi讀取excel資料(excel可能很大,先轉換為csv再讀取)
————————————配置———————————— jdbc.properties中加入: excelUrl=/……xlsx檔案目錄路徑/ (excelUrl + “xxxx.xlsx” 為完整路徑) 匯入poi-3.16下的6個jar包,poi-3.16/l
POI對EXCEL中時間格式資料的讀取
1、Excel儲存日期、時間均以數值型別進行儲存,讀取時POI先判斷是是否是數值型別,再進行判斷,判斷數值: HSSFCell.CELL_TYPE_NUMERIC==cell.getCellType() 2.日期
java利用poi讀取excel中資料
所需的jar包: 程式碼: /** * * @param cell * 一個單元格的物件 * @return 返回該單元格相應的型別的值 */ public static Object getRightTypeCell(Ce
讀取excel檔案並將其中資料轉換成指令碼資料結構
using UnityEngine; using System.Collections; using Excel; using System.IO; using System.Text; using System.Data; using System.Collections.Generic; using Sy
javaweb專案poi 讀取excel 並編輯輸出
String dir =getRequestContext().getReq().getRealPath("") + "\\downloadfile\\11.xls"; FileInputStream fs=new
POI讀取Excel——(四)
getc string args pan mx2 edr ccm div cfm package POI; import java.io.File; import java.io.IOException; import org.apache.commons.io.Fi
java poi讀取excel
讀取excel logs format == -s code com erro style POI實現java讀取excel 1.下載POI的jar包 , 雲盤下載地址: http://pan.baidu.com/s/1jH59hdk commons-fileupload-
java用poi讀取Excel表格中的數據
stream 數據 orm xlsx 其中 type() 2.6 create 穩定 Java讀寫Excel的包是Apache POI(項目地址:http://poi.apache.org/),因此需要先獲取POI的jar包,本實驗使用的是POI 3.9穩定版。Apac
Java利用POI 讀取Excel行列數,getLastRowNum()和getLastCellNum()的區別
一般讀取行總數時,會呼叫getLastRowNum(),讀取列總數時,會呼叫getLastCellNum(),但這兩個方法的返回值有點區別。 sheet.getLastRowNum();//返回最後一行的索引,即比行總數小1 row.getLastCellNum();//返回的是最後一列
pyhon通過讀取excel的表結構資料,形成建表語句
excel中需要包含:第一列為欄位名稱,第二列為欄位型別,第三列為欄位長度,第四列為是否為主鍵利用Y/N區分 import xlrd import os def convert_type(data_type): """Normalize MySQL `data_type`"""