當前位置:首頁 » 編程語言 » exceltoxmljava

exceltoxmljava

發布時間: 2023-04-01 08:37:15

java開發怎麼導入導出excel裡面信息內容

publicclassExcelExport{
/**
*默認每個sheet頁最多顯示的行數
*/
privatestaticfinalintsheet_rows=50000;

/**
*導出Excel文件
*
*@paramtitleList
*表頭信息
*@paramdataList
*表格數據
*@paramfileName
*導出文件完整名稱demo.xls
*@paramrequest
*@paramresponse
*@throwsIOException
*/
(List<String>titleList,
List<List<String>>dataList,StringfileName,
HttpServletRequestrequest,HttpServletResponseresponse)
throwsIOException{
HSSFWorkbookworkBook=exportDataToExcel(titleList,dataList);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("UTF-8");
fileName=encodeFilename(fileName,request);
response.setHeader("Content-disposition","attachment;filename="+fileName);
workBook.write(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
}

(Stringfilename,HttpServletRequestrequest){
Stringagent=request.getHeader("USER-AGENT");
try{
if((agent!=null)&&(0<=agent.indexOf("Firefox"))){
returnMimeUtility.encodeText(filename,"UTF-8","B");
}elseif((agent!=null)&&(0<=agent.indexOf("Chrome"))){

returnfilename=newString(filename.getBytes(),"ISO8859-1");
}
else{

if(agent!=null){

StringnewFileName=URLEncoder.encode(filename,"UTF-8");
newFileName=StringUtils.replace(newFileName,"+","%20");
if(newFileName.length()>150){
newFileName=newString(filename.getBytes("GB2312"),
"ISO8859-1");
newFileName=StringUtils.replace(newFileName,"",
"%20");
}
returnnewFileName;
}
}
}catch(Exceptionex){
returnfilename;
}
returnfilename;
}

(List<String>titleList,List<List<String>>dataList){

/*1.創建一個Excel文件*/
HSSFWorkbookworkbook=newHSSFWorkbook();
/*2.創建Excel的一個Sheet*/
HSSFSheetsheet=workbook.createSheet();
/*3.創建表頭凍結*/
sheet.createFreezePane(0,1);
/*4.設置列寬*/
for(inti=0;i<titleList.size();i++){
sheet.setColumnWidth(i,5000);
}
/*5.表頭字體*/
HSSFFontheadfont=workbook.createFont();
headfont.setFontName("宋體");
headfont.setFontHeightInPoints((short)12);//字體大小
headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
/*6.表頭樣式*/
HSSFCellStyleheadstyle=workbook.createCellStyle();
headstyle.setFont(headfont);
headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中
//設置背景色為藍色
headstyle.setFillForegroundColor(HSSFColor.LIGHT_BLUE.index);
headstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

/*7.普通單元格字體*/
HSSFFontfont=workbook.createFont();
font.setFontName("宋體");
font.setFontHeightInPoints((short)12);
/*8.普通單元格樣式*/
HSSFCellStylestyle=workbook.createCellStyle();
style.setFont(font);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中
/*9.拼裝表頭*/
Iterator<String>titleRowIterator=titleList.iterator();
intcolumnIndex=0;
HSSFRowrow=sheet.createRow(0);
while(titleRowIterator.hasNext()){
StringcellValue=titleRowIterator.next();
HSSFCellcell=row.createCell(columnIndex);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(cellValue);
cell.setCellStyle(headstyle);
columnIndex++;
cell=null;
}
/*10.組織表數據*/
Iterator<List<String>>rowIterator=dataList.iterator();
introwIndex=1;
while(rowIterator.hasNext()){
List<String>columnList=rowIterator.next();
row=sheet.createRow(rowIndex);
Iterator<String>columnIterator=columnList.iterator();
columnIndex=0;
while(columnIterator.hasNext()){
StringcellValue=columnIterator.next();
HSSFCellcell=row.createCell(columnIndex);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(cellValue);
cell.setCellStyle(style);
cell=null;
columnIndex++;
}
row=null;
rowIndex++;
}
returnworkbook;
}

/**
*重載導出數據到Excel中
*@paramtitleList表頭
*@paramdataList表數據
*@paramamount每個sheet頁顯示行數
*@return
*/
(List<String>titleList,List<List<String>>dataList,intamount){

/*1.創建一個Excel文件*/
HSSFWorkbookworkbook=newHSSFWorkbook();

//校驗傳入的參數
if(titleList==null){
titleList=newArrayList<String>();
}
//無數據直接返回
if(dataList==null||dataList.size()==0){
returnworkbook;
}
//傳入數據不正確,按照默認條數顯示
if(amount>65535||amount<=0){
amount=sheet_rows;
}

//獲取sheet頁的數量
introw_num=0;
inty=dataList.size()%amount;
if(y==0){
row_num=dataList.size()/amount;
}else{
row_num=dataList.size()/amount+1;
}

/*表頭字體*/
HSSFFontheadfont=workbook.createFont();
headfont.setFontName("宋體");
headfont.setFontHeightInPoints((short)12);//字體大小
headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
/*表頭樣式*/
HSSFCellStyleheadstyle=workbook.createCellStyle();
headstyle.setFont(headfont);
headstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中
//設置背景色為藍色
headstyle.setFillForegroundColor(HSSFColor.LIGHT_BLUE.index);
headstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

/*普通單元格字體*/
HSSFFontfont=workbook.createFont();
font.setFontName("宋體");
font.setFontHeightInPoints((short)12);
/*普通單元格樣式*/
HSSFCellStylestyle=workbook.createCellStyle();
style.setFont(font);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中

//循環寫入每個sheet頁
for(inti=0;i<row_num;i++){
/*創建Excel的一個Sheet*/
HSSFSheetsheet=workbook.createSheet();
/*創建表頭凍結*/
sheet.createFreezePane(0,1);
/*設置列寬*/
for(intt=0;t<titleList.size();t++){
sheet.setColumnWidth(t,5000);
}
/*拼裝表頭*/
Iterator<String>titleRowIterator=titleList.iterator();
intcolumnIndex=0;
HSSFRowrow=sheet.createRow(0);
while(titleRowIterator.hasNext()){
StringcellValue=titleRowIterator.next();
HSSFCellcell=row.createCell(columnIndex);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(cellValue);
cell.setCellStyle(headstyle);
columnIndex++;
cell=null;
}
/*組織表數據*/
introwIndex=1;
for(intj=amount*i;(j<amount*(i+1)&&j<dataList.size());j++){
List<String>columnList=dataList.get(j);
row=sheet.createRow(rowIndex);
Iterator<String>columnIterator=columnList.iterator();
columnIndex=0;
while(columnIterator.hasNext()){
StringcellValue=columnIterator.next();
HSSFCellcell=row.createCell(columnIndex);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(cellValue);
cell.setCellStyle(style);
cell=null;
columnIndex++;
}
row=null;
rowIndex++;
}
}
returnworkbook;
}

/**
*重載導出Excel功能,新增一項amount每個sheet導出記錄行數
*@paramtitleList
*@paramdataList
*@paramfileName
*@paramamount行數如果小於等於0或大於65535則按照默認顯示
*@paramrequest
*@paramresponse
*@throwsIOException
*/
(List<String>titleList,
List<List<String>>dataList,StringfileName,intamount,
HttpServletRequestrequest,HttpServletResponseresponse)
throwsIOException{
HSSFWorkbookworkBook=exportDataToExcel(titleList,dataList,amount);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("UTF-8");
fileName=encodeFilename(fileName,request);
response.setHeader("Content-disposition","attachment;filename="+fileName);
workBook.write(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
}

}

說明:main方法里的第一個參數為要導出的表頭信息,
第二個參數為數據信息,
第三個參數設置文件名,設置好以後直接調用就可以導出Excle了;

導入就是把文件存到伺服器,可用Mogodb等資料庫存儲,以下是讀取已存根據存儲的文件id解析Excle數據的大致過程:

POIFSFileSystemfs=null;
if(!StringUtils.isBlank(fileId)){
fs=newPOIFSFileSystem(newByteArrayInputStream(
//傳入對應的文件對象
MongoFileUtil.readFile(fileId)));
}
//構造XSSFWorkbook對象,filePath傳入文件路徑
HSSFWorkbookxwb=newHSSFWorkbook(fs);
//讀取第一個sheet
HSSFSheetsheet=xwb.getSheetAt(0);


for(inti=sheet.getFirstRowNum()+1;i<sheet.getPhysicalNumberOfRows();i++){
//解析每行的數據
HSSFRowsingleRow=sheet.getRow(i);
//解析每個單元格數據
singleRow.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
StringcellValue=singleRow.getCell(0).getStringCellValue();
}

㈡ java編程將文字轉為對應數字然後做二維碼存入excel

這東西可以自己查閱資料啊。給你一個思路,首先把excel轉化為xml文件保存(或者轉為資料庫),然後讀取xml。
再用碼此前下面這個類轉為二維碼。
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package qrcode;
import com.swetake.util.Qrcode;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

/**
* Created with IntelliJ IDEA.
* Date: 10/9/13
* Time: 11:31 AM
*/
public class QRCodeTest {

private static int DEFAULT_WIDTH;
private static int UNIT_WIDTH = 10;

public static void createImg(){
Qrcode qrcode=new Qrcode();
//錯誤修正容量
//L水平 7%的字碼可被扒鍵修正
//M水平 15%的字碼可被修正
//Q水平 25%的字碼可被修正
//H水平 30%的字碼可被修正
//QR碼有容錯能力,QR碼圖形如果有破損,仍然可以被機器讀取內容,最高可以到7%~30%面積破損仍可被讀取。
//相對而言,容錯率愈高,QR碼圖形面積愈大。所以一般折衷使用15%容錯能力。
qrcode.setQrcodeErrorCorrect('M');/* L','M','Q','H' */
qrcode.setQrcodeEncodeMode('B');/* "N","A" or other */
qrcode.setQrcodeVersion(3);/* 0-20 */

String testString = "這里是要遲清轉化的文字";

byte[] buff = null;
try {
buff = testString.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
boolean[][] bRect = qrcode.calQrcode(buff);
DEFAULT_WIDTH = bRect.length * UNIT_WIDTH;

BufferedImage bi = new BufferedImage(DEFAULT_WIDTH, DEFAULT_WIDTH, BufferedImage.TYPE_INT_RGB);
// int unitWidth = DEFAULT_WIDTH / bRect.length;

// createGraphics
Graphics2D g = bi.createGraphics();

// set background
g.setBackground(Color.WHITE);
g.clearRect(0, 0, DEFAULT_WIDTH, DEFAULT_WIDTH);
g.setColor(Color.BLACK);

if (buff.length>0 && buff.length <123){

for (int i=0;i<bRect.length;i++){

for (int j=0;j<bRect.length;j++){
if (bRect[j][i]) {
g.fillRect(j*UNIT_WIDTH, i*UNIT_WIDTH, UNIT_WIDTH-1, UNIT_WIDTH-1);
}
}

}
}

g.dispose();
bi.flush();

String FilePath="QRCode.png";
File f = new File(FilePath);

try {
ImageIO.write(bi, "png", f);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Create QRCode finished!");
}
}

㈢ java讀取excel文件運行問題,用的是jxl包。運行時選擇的是Demo。不知道怎麼運行,求高手指點。

//尺弊緩Excel 數據 比對 系統

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExcelContrast {
static String file1 = "d://java//1.xls";
static String file2 = "d://java//2.xls";
static HashMap<Integer, String> hsMap1 = new HashMap<Integer, String>();
static HashMap<Integer, String> hsMap2 = new HashMap<Integer, String>();
static int found = 0;
public static void main(String[] args) {
System.out.println("歡迎使用Excel數據比對系統!");
System.out.println("Excel數據比對系統 開始運行。。。");
System.out.println("讀取" + file1);
ReadExcelToHashMap(file1, hsMap1);
// System.out.println(hsMap1.size());
System.out.println("讀取陵模" + file1);
ReadExcelToHashMap(file2, hsMap2);
// System.out.println(hsMap2.size());
// System.out.println(hsMap1.values());
// System.out.println(hsMap2.values());
System.out.println("開始比對。。。");
server();
System.out.println("成功比對出" + found + "條不同數據");
System.out.println("Excel數據比對系統 正常退出。。。");
}
private static void server() {
int i = 0;
System.out.println("遍歷比對" + file1);
while (i < hsMap1.size()) {
if (hsMap2.containsValue(hsMap1.get(i))) {
} else {
System.out.println(file1 + "卜源 第" + (i + 1) + "行 "
+ hsMap1.get(i));
UpdateExcel(i, 0, hsMap1.get(i), file1);
UpdateExcel(i, 1, "稽核", file1);
found++;
}
i++;
}
i = 0;
System.out.println("遍歷比對" + file2);
while (i < hsMap2.size()) {
if (hsMap1.containsValue(hsMap2.get(i))) {
} else {
System.out.println(file2 + " 第" + (i + 1) + "行 "
+ hsMap2.get(i));
UpdateExcel(i, 0, hsMap2.get(i), file2);
UpdateExcel(i, 1, "稽核", file2);
found++;
}
i++;
}
}
private static void ReadExcelToHashMap(String file,
HashMap<Integer, String> hsmap) {
try {
Workbook book = Workbook.getWorkbook(new File(file));
// 獲得第一個工作表對象
Sheet sheet = book.getSheet(0);
// 得到第一列第一行的單元格
int i = 0;
while (!sheet.getCell(0, i).getContents().equalsIgnoreCase("")) {
hsmap.put(i, sheet.getCell(0, i).getContents());
i++;
}
book.close();
} catch (FileNotFoundException e) {
System.out.println("系統找不到指定的文件:" + file);
System.exit(0);
} catch ( e) {
} catch (Exception e) {
e.printStackTrace();
}
}
static void test_hash() {
HashMap<Integer, String> hsMap = new HashMap<Integer, String>();
hsMap.put(3, "Value3");
hsMap.put(2, "Value2");
System.out.println(hsMap.get(2));
System.out.println(hsMap.values());
System.out.println(hsMap.containsKey(1));
System.out.println(hsMap.containsValue("Value3"));
System.out.println(hsMap.size());
}
static void UpdateExcel(int i, int j, String cell, String file) {
try {
// Excel獲得文件
Workbook wb = Workbook.getWorkbook(new File(file));
// 打開一個文件的副本,並且指定數據寫回到原文件
WritableWorkbook book = Workbook.createWorkbook(new File(file), wb);
// 添加一個工作表
WritableSheet ws = book.getSheet(0);
// 這里需要注意的是,在Excel中,第一個參數表示列,第二個表示行
WritableFont font = new WritableFont(WritableFont.ARIAL, 15,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
Colour.RED);
WritableCellFormat cFormat = new WritableCellFormat(font);
Label labelC = new Label(j, i, cell, cFormat);
try {
// 將生成的單元格添加到工作表中
ws.addCell(labelC);
} catch (Exception e) {
e.printStackTrace();
}
book.write();
book.close();
} catch (FileNotFoundException e) {
System.out.println("另一個程序正在使用此文件,進程無法訪問。請您關閉EXECL");
System.exit(0);
}
catch (Exception e) {
e.printStackTrace();
}
}
}

㈣ java將數據導出excel計算其文件大小

熱門頻道

首頁

博客

研修院

VIP

APP

問答

下載

社區
推薦頻道

活動

招聘

專題
打開CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved

打開APP

大數據導出敗租excel大小限制_java 導出Excel 大數據量,自己經驗總結! 原創
2020-12-19 01:58:16

weixin_39655377
碼齡5年
關注
分析導出簡腔實現代碼,XLSX支持:

/*** 生成XLSX,2007版本的excel,每個sheet無6.5W的行數限制,但是到了一定數量,可能內存溢出,

* 次方法適合在預計10W以下的數據導出時使用,本機測試,14W可以導出。列數量在8列左右

*

*@paramfileOut

* 輸出流

*@paramsheetMap

* 要設置的數據信息

*@throwssqlException*/

public static voidcreateXSLXByResultSet(OutputStream fileOut, WriteXLSBean... beans)throwsSQLException {try{//重點 Workbook

Workbook wb = newXSSFWorkbook();for (int i = 0, len = beans.length; i < len; i++) {

WriteXLSBean xlsBean=beans[i];

Sheet sheet=wb.createSheet(xlsBean.getSheetName());

ResultSet rs=xlsBean.getRs();

ResultSetMetaData rsmd=rs.getMetaData();

TypeHandlerRegistry tr=BeanContext.tr;

Map th =xlsBean.getTh();int index = 0;while(rs.next()) {long t1 =System.currentTimeMillis();

org.apache.poi.ss.usermodel.Row row=sheet

.createRow(index);for (int j = 0, numberOfColumns = rsmd.getColumnCount(); j < numberOfColumns; j++) {

String key= rsmd.getColumnLabel(j + 1).toLowerCase();if(th.containsKey(key)) {

TypeHandler> type =tr.getTypeHandler(JdbcType

.forCode(rsmd.getColumnType(j+ 1)));

Object obj=type.getResult(rs, key);

row.createCell(j).setCellValue(obj== null ? "": obj.toString());

}

}

System.out.println(index+ " :"

+ (System.currentTimeMillis() -t1));

index++;

}

}//重點 Workbook

wb.write(fileOut);

}catch(IOException e) {

e.printStackTrace();throw new ServiceRunTimeException("生產xls文檔錯誤", e);

}finally{

}

}

在上面 標注了重點的兩處,分別是:

1.構建一個Excel對象

2.將該對象寫入一個OutPutStream

而在構建過程中,沒有地方寫入OutPutSteam ,也就是說必須在內存中構建整個 Excel,才能進行寫出操作,在大數據量情況下,這樣將導致所有數據載入到內存中,而不能輸出,導致最後 內存溢出。

根據運行環境不用,可能內存溢出的 情況不同

根據情況,如果數據量達到10W以上,建議使用

1、多個Excel,每個Excel一個Sheet,因為所有Sheet都是Workbook的組成部分攔枯衫。如果不分多個Excel,即使分Sheet也沒用,

2、每個Excel中列數適中,比如: 5W行每個Excel檔,實現分多次導出和分頁查詢原理一樣

3、對多個Excel導出到一個臨時目錄,並通過程序壓縮,然後提供給客戶下載

2003版通過資料庫結果存到List中,然後進行生產:Table 就是List Row 是Map

/*** 生產xls,2003版本的excel,每個sheet有6.5W的行數限制

*

*@paramfileOut

* 輸出流,未關閉

*@paramsheetMap

* 要導出的數據信息*/

public static void createXSLByMap(OutputStream fileOut, Map>>sheetMap) {try{

HSSFWorkbook wb= newHSSFWorkbook();

Set keys =sheetMap.keySet();for (Iterator iterator =keys.iterator(); iterator

.hasNext();) {

String SheetKey=iterator.next();

Sheet sheet=wb.createSheet(SheetKey);

List> sheetRows =sheetMap.get(SheetKey);for (int i = 0, len = sheetRows.size(); i < len; i++) {

Map cellMap =sheetRows.get(i);

Set cellSet =cellMap.keySet();

org.apache.poi.ss.usermodel.Row row=sheet.createRow(i);int j = 0;for (Iterator iterCell =cellSet.iterator(); iterCell

.hasNext(); j++) {

String cellKey=iterCell.next();

Object obj=cellMap.get(cellKey);

row.createCell(j).setCellValue(obj== null ? "": obj.toString());

}

}

}

wb.write(fileOut);

}catch(IOException e) {

e.printStackTrace();throw new ServiceRunTimeException("生產xls文檔錯誤", e);

}finally{

}

}

新版本 POI+office 2007版本excel可以導出幾十萬條而不內存溢出,詳細見:

導出大量數據到 excel 的 xlsx文件

static String src="SFGHJKJGHFERTUIO";

public static void main(String[] args) throwsThrowable {

SXSSFWorkbook wb = new SXSSFWorkbook(100); //這里100是在內存中的數量,如果大於此數量時,會寫到硬碟,以避免在內存導致內存溢出

Sheet sh =wb.createSheet();

for (int rownum = 0; rownum < 1000000; rownum++) {

Row row =sh.createRow(rownum);

for (int cellnum = 0; cellnum < 10; cellnum++) {

Cell cell =row.createCell(cellnum);

String address = newCellReference(cell).formatAsString();

cell.setCellValue(address+src.substring(rownum%10*10+1, (rownum%10+1)*10));

}

}

File file = new File("F:/aa.xlsx");

file.createNewFile();

FileOutputStream out = newFileOutputStream(file);

wb.write(out);

out.close();

}

內存使用情況:

根據以上前輩經驗,自己在結果自身需求考慮,整合出一個工具。解決了excle表.xls格式行數65535行的限制。我實現的形式是導出一張表,裡面有多頁

(我是已65000為一頁)

這里是用反射來使用所有傳入進行的實體的屬性的值。這里只針對String和基本數據類型。如有自己定義的類型需要自己加上。

packagecom.tommy.fundation.util;importjava.lang.reflect.Field;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;public classRelectUtil {public static List reflectEntity(T model,Class> cals) throwsNoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, SecurityException, NoSuchFieldException{

List list = new ArrayList();

Field[] field= model.getClass().getDeclaredFields(); //獲取實體類的所有屬性,返回Field數組

for(int j=0 ; j

String nam = field[j].getName(); //獲取屬性的名字

String name =nam;

name= name.substring(0,1).toUpperCase()+name.substring(1);

String type= field[j].getGenericType().toString(); //獲取屬性的類型

if(type.equals("class java.lang.String")){ //如果type是類類型,則前麵包含"class ",後面跟類名

Method m = model.getClass().getMethod("get"+name);

String value= (String) m.invoke(model); //調用getter方法獲取屬性值

if(value != null){

list.add(value);

}else{

list.add("");

}

}if(type.equals("class java.lang.Integer")){

Method m= model.getClass().getMethod("get"+name);

Integer value=(Integer) m.invoke(model);if(value != null){

list.add(value);

}else{

list.add("");

}

}if(type.equals("class java.lang.Short")){

Method m= model.getClass().getMethod("get"+name);

Short value=(Short) m.invoke(model);if(value != null){

list.add(value);

}else{

list.add("");

}

}if(type.equals("class java.lang.Double")){

Method m= model.getClass().getMethod("get"+name);

Double value=(Double) m.invoke(model);if(value != null){

list.add(value);

}else{

list.add("");

}

}if(type.equals("class java.lang.Boolean")){

Method m= model.getClass().getMethod("get"+name);

Boolean value=(Boolean) m.invoke(model);if(value != null){

list.add(value);

}else{

list.add("");

}

}if(type.equals("class java.util.Date")){

Method m= model.getClass().getMethod("get"+name);

Date value=(Date) m.invoke(model);if(value != null){

list.add(value);

}else{

list.add("");

}

}

}returnlist;

}

}

下面將是重點實現導出excel表

packagecom.tommy.fundation.util;importjava.io.OutputStream;importjava.util.ArrayList;importjava.util.Date;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Set;importjavax.servlet.http.HttpServletResponse;importorg.apache.poi.hssf.record.formula.functions.T;importorg.apache.poi.hssf.usermodel.HSSFRow;importorg.apache.poi.hssf.usermodel.HSSFSheet;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;

@SuppressWarnings("hiding")public class ExportExcel{/*** 導出多張excel表,解決xls格式行數65535的限制

*@authorOnlyOne

*@paramresponse

*@paramlist 需要處理的list數據集合

*@throwsException*/@SuppressWarnings("deprecation")public void doExcel(HttpServletResponse response,List list,String fileName) throwsException {

OutputStream os= response.getOutputStream();//獲取輸出流

response.reset();//設置下載頭部信息。Content-disposition為屬性名。attachment表示以附件方式下載,如果要在頁面中打開,則改為inline。filename為文件名

response.setHeader("Content-disposition", "attachment; filename=excell.xls");

response.setContentType("application/msexcel");

Map> sheetMap =daData(list);

HSSFWorkbook wb= newHSSFWorkbook();

Set keys =sheetMap.keySet();for (Iterator iterator =keys.iterator(); iterator.hasNext();) {

Integer SheetKey=iterator.next();

HSSFSheet sheet= wb.createSheet((fileName+SheetKey).toString());

List sheetRows =sheetMap.get(SheetKey);for (int i = 0, len = sheetRows.size(); i < len; i++) {

T en=(T) sheetRows.get(i);

List dataList = RelectUtil.reflectEntity(en, en.getClass());

HSSFRow row=sheet.createRow(i);

row.createCell(0).setCellValue(String.valueOf(i));for(int m=0; m

row.createCell(m+1).setCellValue(dataList.get(m).toString());

}

}

}

wb.write(os);

}/*** 此方法將數據集合按65000個進行分割成多個子集合

*@authorOnlyOne

*@paramlist 需要處理的list數據集合

*@return

*/

public Map> daData(Listlist){int count = list.size()/65000;int yu = list.size() % 65000;

Map> map = new HashMap>();for (int i = 0; i <= count; i++) {

List subList = new ArrayList();if (i ==count) {

subList= list.subList(i * 65000, 65000 * i +yu);

}else{

subList= list.subList(i * 65000, 65000 * (i + 1)-1);

}

map.put(i, subList);

}returnmap;

}

}

在Java中調用的方式

@RequestMapping(value = "/doExcel", method =RequestMethod.GET)public void doExcel(HttpServletResponse response,HttpServletRequest request) throwsException {

List list =enrolltgService.findAll();new ExportExcel().doExcel(response, list, "黑白淡奶");

}

大功搞成,以後再也不會為了數據量太大而導不出來煩惱了!!!

需要的包 poi-3.2-FINAL-20081019.jar

相關資源:poi讀取大文件Excel,使用xml格式解析,速度實測50mb文件13s,可指定...
打開CSDN,閱讀體驗更佳

POI多線程分表導出百萬級大數據量EXCEL導出_Zhuo_chao的博客-CSDN博 ...
由上面可知 Excel 2003及以下是無法實現單sheet百萬級的數據。 ApachePOI 簡介 Apache POI 是用Java編寫的免費開源的跨平台的 JavaAPI,Apache POI提供API給Java程式對Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式檔案讀和寫的功...
Java 使用POI導出數據到 excel,單 sheet 和多 sheet__修鐵路的的博客...
單sheet 和多 sheet,用到的jar都是一樣的,無非就是多創建一個 sheet的問題,以下是需要用到的jar包,在對應模塊的pom.xml 中引入即可 <dependency> <groupId>org.apache.poi</groupId> ...
java導出excel超出65533行
業務背景: 列表導出,數據導出超過65533行 解決方案: 1、超出65533行,直接系統提示:本系統支持導出的最大條數為65533行 2、導出模版改為.xlsx,POI導出時用XSSFWorkbook,把所有數據都拿到內存里,可以導出超過65533行,但是上線之後,發現會內存溢出 3、導出模版改為.xlsx,POI導出時用SXSSFWorkbook,每次往內存里放一定的數據,導完之後,刷新,再次...
繼續訪問
Java的poi導出的excel不能超過256列的解決辦法
Java的poi導出的excel不能超過256列的解決辦法背景1、現在的情況2、解決辦法 背景 1、現在的情況 excel文件名以.xls結尾 這個構造函數中默認採取這個類型 this.type = ExcelType.HSSF; public ExportParams(String title, String sheetName) { this.color = HSSFColorPredefined.WHITE.getIndex(); this.headerColor = HSSFC
繼續訪問
使用ApachePOI導出excel(多個sheet頁)_我是橘子京的博客
2、設置導出excel路徑 //導出的文件路徑 String filePath="D:\\excel.xls"; 1 2 3、創建excel文件 //創建Excel文件(Workbook) HSSFWorkbook workbook = new HSSFWorkbook(); 1 2 4、設置單元格樣式 //設置單元格樣式 HSSFCel...
POI3.8 導出大數據excel(50萬左右)_咖啡加糖_的博客_poi支持最...
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellReference; import org.apache.poi.xssf.streaming.SXSSFWorkbook; ...
最新發布 【JAVA問題解決方案】01.EasyExcel導出數據超過Excel單表上限解決方案
1.了解一下Excel單表最多存儲多少行數據(可以存儲1048576條數據,1024的平方,2的20次方)。本文是介紹EasyExcel導出數據超過Excel單表上限解決方案。2.知道最多多少行就能以這個數為條件,如果超過則進行分表。3.分表的同時需要對數據進行分割,才能不超過最大限度。實體類(非常簡單,為了導出表更快)
繼續訪問

java實現流輸出形式導出數據(使用EasyExcel)並打包為zip包
java實現流輸出形式文件下載並打包為zip包 pom.xml文件導入easyexcel <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.0.5</version> </d...
繼續訪問
...到excel文件(xls格式),附實驗結果(單張sheet最多可有65536行)& Fi...
使用POI導出MySQL資料庫數據到excel文件(xls格式) 注意事項:單張sheet最多存儲65536行!否則報錯! Caused by: java.lang.IllegalArgumentException: Invalid row number (65536) outside allowable range (0..65535) !
使用Apache POI導出百萬條EXCEL數據_橙樂果果的博客
工作中,有這么一個需求:每天凌晨00:05分定時從資料庫導出大於三個月的訂單流水信息,保存為excel文件。 Just do it. 1.引入POM依賴 <!-- excel --> <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> ...
Linux下讀寫文件操作
Linux下讀寫文件操作 #include<stdio.h> typedef struct Student { int no; char name[10]; int score; }Student; int main(int args,char *argv[]) { //打開文件 FILE *fp=fopen("test.txt","w"); if(fp=NULL) { perror("fopen"); ...
繼續訪問
Java導出超大Excel文件,防止內存溢出
Java導出超大Excel文件,防止內存溢出1.採用Poi中的SXSSFWorkbook2.maven中引入Poi3.測試過程4.單元測試Java代碼5.結論 將業務數據導出到Excel表中,導出任務數據量較大時,導出的項目就會內存溢出,本文通過Java操作Poi的SXSSFWorkbook類進行導出,解決內存溢出問題。 1.採用Poi中的SXSSFWorkbook 在實現excel導出時,在數據量過大的情況下,總是容易發生內存溢出的情況。可以使用POI提供的 SXSSFWorkbook 類來避免內存溢
繼續訪問

Apache Poi導出Excel多Sheet頁詳解!_奧鵬馬的博客
apache poi是目前比較常用導出excel的方式。最近想要實現一個導出excel多sheet頁的功能。 網上查了一下大多都是針對某個具體對象的導出,不能實現任意對象的導出。現在將自己研究出的代碼貼出來,供大家參考。 //注意:此處實現的關鍵是將...
Apache poi 導出多sheet的excel表格_朋態圈的博客
導出多sheet的excel */public class ApachePoi { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub exportExcel();} @SuppressWarnings("resource") public static String exportExcel...
java導出excel限制大小_解決java poi導出excel2003不能超過65536行的問題
/*** 如果達到50000條數據則重新創建工作表的邏輯*/@Overridepublic void exportExcel(ListformList, ServletOutputStream outputStream){try{//工作表名後面的數字,如表1,表2int i = 0;//記錄總行數int rownum = 0;//記錄每個sheet的行數int tempnum = 0;//分頁條...
繼續訪問
熱門推薦 java poi 導出Excel 超大數據量解決方案
http://blog.csdn.net/qiaoshuai0920/article/details/51800991
繼續訪問
poi導出excel,實現一個excel中多個sheet(可解決poi導出限制65536的問題...
本文章的excel實現導出多個sheet是在上一篇poi導出的基礎上實現的,這么久了,對於上一篇文章的poi也作出過一些優化。 這里我只貼修改了的方法的代碼,其餘的和上一篇文章的一樣。 /** * 導出excel.在一個頁面中單獨導出Excel ...
基於Apache POI導出(百萬級)大數據量Excel的實現_一朵風中搖曳的水仙...
支持單個 excel 的 sheet 導出100w 的數據 ApachePOI操作Excel對象 1.HSSF:操作Excel 2007之前版本(.xls)格式,生成的EXCEL不經過壓縮直接導出 2.XSSF:操作Excel 2007及之後版本(.xlsx)格式,內存佔用高於HSSF ...
解決POI的XSSFWorkbook導入大excel的內存消耗過大問題
方式1:使用SXSSFWorkbook ,經過測試,這個情況無效,因為本質上SXSSFWorkbook 也是通過XSSFWorkbook來的,他可以解決寫出excel的場景,但是解決不了我們這種用戶上傳且讀取excel中的內容的場景 XSSFWorkbook XSSFWorkbook = new XSSFWorkbook(fileInputStream); System.gc(); SXSSFWorkbook SXSSFWorkbook = new SXSS
繼續訪問
導入導出
原文地址:https://blog.csdn.net/qq_29631809/article/details/72785338 創建流程:(上級為 下級的載體) 1:.創建 工作簿 2.創建 sheet(可以創建多個) 3.創建行 4.創建單元格 接下來 分別說下 工作簿的常用三種形式的區別,他們分別是 1.HSSFWorkbook 2.XSSFWorkbook 3.SXSSFWork...
繼續訪問
NPOI導出Excel 65536限制
1 #region NPOI 導出excel數據超65535自動分表 2 /// <summary> 3 /// DataTable轉換成Excel文檔流,並輸出到客戶端 4 /// </summary> 5 /// <param name="table">...
繼續訪問
java導出csv文件 為解決導出excel時每個單元格的限制(32767)
此實現方法僅供參考 因為本人導出數據量不大所採取的方法 如數據量大,會到至內存溢出請知曉 在這還提下:導出時內容自己換行 只需在內容前尾各加雙引號就行。 如圖 1、准備導出工具類 // An highlighted block package com.test; import java.io.BufferedWriter; import java.io.File; import java.io...
繼續訪問
Excel單元格數據超過32767報錯問題處理
java poi 32767
繼續訪問
SXSSFWorkbook Excel 大量數據導出
注意 SXSSFWorkbook 用於大量數據的導出 SXSSFWorkbook是用來生成海量excel數據文件,主要原理是藉助臨時存儲空間生成excel, SXSSFWorkbook專門處理大數據,對於大型excel的創建且不會內存溢出的,就只SXSSFWorkbook了。 它的原理很簡單,用硬碟空間換內存(就像hashmap用空間換時間一樣)。 SXSSFWorkbook是streami...
繼續訪問
EXCEL大數據量導出的解決方案
將web頁面上顯示的報表導出到excel文件里是一種很常見的需求。然而,當數據量較大的情況下,excel本身的支持最多65535行數據的問題便凸顯出來。下面就給出大數據量導出到excel的解決方 案。 首先,對於數據超過了65535行的問題,很自然的就會想到將整個數據分塊,利用excel的多sheet頁的功能,將超出65535行後的數據寫入到下一個sheet頁中,即通過多sheet頁的方式,突破了...
繼續訪問
幾行代碼,復雜Excel 導入導出,真心強大!
點擊上方藍色字體,選擇「標星公眾號」優質文章,第一時間送達項目中使用:功能介紹IMPORT1、 ExcelHandle核心處理器;2、 ExcelWorkbookManageexcel所有工作表管理;3、 ExcelInitConfig配置文件初始化;4、 AbstractFileParser文件轉換類;alanpoi import有何優勢?1、 用戶不需要額外引入poi...
繼續訪問

java中poi導出excel問題總結
java中poi導出excel問題總結
繼續訪問
java POI導出excel,列數限制在256列
有兩篇文章寫得比較好的 https://www.oschina.net/code/snippet_1052786_47435 https://www.jianshu.com/p/4c6eec65fdc3
繼續訪問
apache poi導出excel最大多少個sheet
大數據導出excel大小限制
寫評論

評論

收藏

點贊



分享

㈤ 如何用java來將excel文件轉化為html文件問題

可以導入spire.xls.jar(只需導入這一個jar即可),直接下載jar包,然後解壓將lib文件夾下的jar文件導入java程序;如果創建的是Maven程序的話,需要在pom.xml文件中配置maven路徑並指定Free Spire.XLS for Java的依賴,導入,如下配置:

<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.xls</artifactId>
<version>2.2.0</version>
</dependency></dependencies>

完成導入後,參考如下代碼將excel轉為html:

import com.spire.xls.*;

public class ExcelToHtml {
public static void main(String[] args) {
//載入Excel工作表
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");

//獲取工作表
Worksheet sheet = wb.getWorksheets().get(0);

//調用方法將Excel保存為HTML
sheet.saveToHtml("ToHtml.html");
}
}

㈥ 如何用java實現xml文件轉excel

/**
*
* ExcelXML.java
* IBM_Developer_POI(Excel,Word) */
package com.wds.excelxml;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.NumberFormat;
import java.text.ParseException;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDataFormatter;
import org.apache.poi.hssf.usermodel.HSSFHyperlink;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import nu.xom.Attribute;
import nu.xom.Document;
import nu.xom.Element;
import nu.xom.Elements;
import nu.xom.Serializer;
public class ExcelXML {

public static void main(String[] args) {
excelXML();
}

/**
* 從Excel到XML
* 從XML到Excel
*/
private static void excelXML(){
/*
* 首先創建一個XML文檔
* 要創建XML文檔,首先創建一個根元素
*/
Element reportRoot=new Element("sheet");
Document xmlReport=new Document(reportRoot);

try {
//讀取Excel文件
FileInputStream excelFIS=new FileInputStream("D:\\JavaTest\\Employee_List.xls");
//創建Excel工作表
HSSFWorkbook excelWB=new HSSFWorkbook(excelFIS);
//獲得Excel工作簿
HSSFSheet excelSheet=excelWB.getSheetAt(0);
//獲得工作簿的行數
int rows=excelSheet.getPhysicalNumberOfRows();
//遍歷工作簿的行
for(int rowIndex=0; rowIndex<rows;rowIndex++){
HSSFRow oneRow=excelSheet.getRow(rowIndex);
if(oneRow==null){
continue;
}
//在迭代每一行的時候,創建xml的行元素
Element rowElement=new Element("row");
//獲得當前行的單元格數
int cells=oneRow.getPhysicalNumberOfCells();
//遍歷行中的每一個單元格
for(int cellIndex=0;cellIndex<cells;cellIndex++){
HSSFCell oneCell=oneRow.getCell(cellIndex);
if(oneCell==null){
continue;
}
//設置元素的默認名稱
String elementName="header";
//獲得單元格所在列位置
int cellColumnIndex=oneCell.getColumnIndex();
if(rowIndex>0){
elementName=reportRoot.getFirstChildElement("row").getChild(cellColumnIndex).getValue();
}
/*
* 去掉非法字元
*/
elementName = elementName.replaceAll("[\\P{ASCII}]","");
elementName = elementName.replaceAll(" ", "");

Element cellElement = new Element(elementName);
//添加屬性和元素
//String attributeValue=oneCell.getCellStyle().getDataFormatString();
//Attribute dataFormatAttribute=new Attribute("dataFormat", attributeValue);
//cellElement.addAttribute(dataFormatAttribute);

/*
* 根據不同的屬性添加
*/
Attribute strTypeAttribute=null;
switch (oneCell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
strTypeAttribute=new Attribute("dataType","String");
cellElement.addAttribute(strTypeAttribute);
cellElement.appendChild(oneCell.getStringCellValue());
rowElement.appendChild(cellElement);
break;
case HSSFCell.CELL_TYPE_NUMERIC:
strTypeAttribute=new Attribute("dataType","Numeric");
cellElement.addAttribute(strTypeAttribute);
HSSFDataFormatter dataFormatter=new HSSFDataFormatter();
String cellFormatted=dataFormatter.formatCellValue(oneCell);
cellElement.appendChild(cellFormatted);
rowElement.appendChild(cellElement);
break;
}
}
if(rowElement.getChildCount()>0){
reportRoot.appendChild(rowElement);
}
//System.out.println(xmlReport.toXML());
}

㈦ java 讀取excel文件 我需要去讀到每一行的每一個數據。 然後操作一番。 最後生成一個XML文件

jxl

package com.cj.fw.xml;
import java.io.File;import java.io.IOException;
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;import jxl.WorkbookSettings;import jxl.read.biff.BiffException;import jxl.write.Label;import jxl.write.WritableCell;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import com.cj.pro.domain.Drilling;
public class DrillingExport {
// 模板文件位置 private final static String TempletFile = "/attachments/template/emergencydrill.xls"; // 數據 private Drilling log = null; private String leixing=null;
/** * 構造函數 */ public DrillingExport( Drilling log,String leixing) { this.log=log; this.leixing=leixing; }
/** * 安全培訓日誌導出表 * @throws IOException * @throws BiffException * @throws WriteException */ public boolean export(HttpServletRequest request,HttpServletResponse response) throws BiffException, IOException, WriteException { String fileName=""; if("1".equals(leixing)){ fileName="應急演練信息導出表.xls"; }else if("2".equals(leixing)){ fileName="消防演練演練信息導出表.xls"消譽數; } response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-type","application/拿首file"); response.setHeader("Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" )); File file = new File(request.getSession().getServletContext().getRealPath(TempletFile)); WorkbookSettings workbookSettings=new WorkbookSettings(); workbookSettings.setEncoding("ISO-8859-1"); //關鍵代虛拿碼,解決中文亂碼 Workbook workbook = Workbook.getWorkbook(file,workbookSettings); WritableWorkbook wwb = Workbook.createWorkbook(response.getOutputStream(), workbook); WritableSheet ws = wwb.getSheet(0); WritableCell cell = null; if("1".equals(leixing)){ cell = new Label(1,0,"應急演練單",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); }else if("2".equals(leixing)){ cell = new Label(1,0,"消防演練單",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); } if(log!=null){ cell = new Label(2,1,log.getRiqi(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(5,1,log.getDidian(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,2,log.getMingcheng(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(5,2,log.getZudanwei(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,3,log.getJiaoben(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); cell = new Label(2,4,log.getBeizhu(),ws.getCell(1,1).getCellFormat()); ws.addCell(cell); }else{ cell = new Label(2,4,"導出出錯",ws.getCell(1,0).getCellFormat()); ws.addCell(cell); } //合計小寫 wwb.write(); wwb.close(); workbook.close(); return true; }
}

上面的是導出 你可以變變

㈧ 如何使用java從excel表提取內容

以下是使用java從excel表提取內容的程序 -
import java.io.File;import java.io.FileInputStream;import org.apache.tika.metadata.Metadata;import org.apache.tika.parser.ParseContext;import org.apache.tika.parser.microsoft.ooxml.OOXMLParser;import org.apache.tika.sax.BodyContentHandler;public class ExtractContentFromExcel {
public static void main(String args[]) throws Exception {

// detecting the file type
BodyContentHandler handler = new BodyContentHandler();

Metadata metadata = new Metadata();
FileInputStream inputstream = new FileInputStream(new File("excelExample.xlsx"));

ParseContext pcontext = new ParseContext();

// OOXml parser
OOXMLParser msofficeparser = new OOXMLParser();

msofficeparser.parse(inputstream, handler, metadata, pcontext);
System.out.println("Contents of the document:" + handler.toString());
System.out.println("Metadata of the document:");
String[] metadataNames = metadata.names();

for (String name : metadataNames) {
System.out.println(name + ": " + metadata.get(name));
}
}}Java

原ODF文件:excelExample.xlsx 的內容如下羨大 -

執行上面示例代碼敏賣,得到以下結果 -
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/F:/worksp/javaexamples/libs/tika_libs/tika-app-1.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/F:/worksp/javaexamples/libs/tika_libs/tika-server-1.16.jar!/org/slf4j/橋派逗impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
九月 27, 2017 5:15:47 上午 org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
警告: JBIG2ImageReader not loaded. jbig2 files will be ignored
See http://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.
TIFFImageWriter not loaded. tiff files will not be processed
See http://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.
J2KImageReader not loaded. JPEG2000 files will not be processed.
See http://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.

九月 27, 2017 5:15:47 上午 org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
警告: org.xerial's sqlite-jdbc is not loaded.
Please provide the jar on your classpath to parse sqlite files.
See tika-parsers/pom.xml for the correct version.
Contents of the document:Sheet1
編號 姓名 年齡 工作
1001 王傳大 22 Java軟體開發
1002 李小雙 29 項目經理
1020 張在傳 28 人事經理

Sheet2

Sheet3

Metadata of the document:
date: 2017-09-27T09:15:38Z
meta:creation-date: 2017-09-27T09:13:50Z
extended-properties:Application: Microsoft Excel
Creation-Date: 2017-09-27T09:13:50Z
dcterms:created: 2017-09-27T09:13:50Z
Last-Modified: 2017-09-27T09:15:38Z
dcterms:modified: 2017-09-27T09:15:38Z
Last-Save-Date: 2017-09-27T09:15:38Z
protected: false
meta:save-date: 2017-09-27T09:15:38Z
Application-Name: Microsoft Excel
modified: 2017-09-27T09:15:38Z
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
custom:KSOProctBuildVer: 2052-10.1.0.6489Shell

易百教程移動端:請掃描本頁面底部(右側)二維碼並關注微信公眾號,回復:"教程" 選擇相關教程閱讀或直接訪問:http://m.yii.com 。

㈨ 將Excel文件數據轉成java bean 時數據錯亂,求指導

我這有個例子你看看吧。。。這個只是如何把數據寫入excel,沒有設計到資料庫。。你把資料庫里的數據取出來然後照著這個例子把數據放進去到excel表格里就行了
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("開始");
try{
//打開文件
WritableWorkbook book=Workbook.createWorkbook(new File("e://測試.xls"));
WritableSheet sheet=book.createSheet("第一頁",0);
//生成名為"第一頁的工作表",參數0表示這是第一頁
Label label=new Label(0,0,"test");
//在label對象的構造函數中指定單元格位置是是第一列第一行(0,0)以及單元格內容為test
sheet.addCell(label);
//將定義好的單元格添加到工作表中
/*生成一個保存數字的單元格
必須使用Number的完整包路徑,否則有語法歧義
單元格位置是第二列,第一行,值為789.123*/
jxl.write.Number number=new jxl.write.Number(1,0,123);
sheet.addCell(number);
//寫入數據並關閉文件
book.write();
book.close();
}catch(Exception e){
System.out.println(e);
}
System.out.println("結束");
}

}

㈩ 如何用java實現xml文件轉excel

實現思路:
直接從Excel文件裝換成XML文件笑肆是可以實現的,這里我採用一個中間裝換,也就是先實現excel文件內容放入實現設計好的access資料庫文件中,然後再從access中讀取記錄寫道xml文件中,因為我這里的實際問題是把多個excel表,每個表中又有多個sheet工作薄,這樣我先導入資料庫中,也方便修改和處理.

這樣,需要寫兩個類:
XlsToAccess類,用來實現從excel文件根據事先約定的格式,按照資料庫設碰螞轎計欄位存放進去
AccessToXml類,用物巧來實現從access文件資料庫中的記錄按約定格式寫到xml文件中去
然後還需要一個主運行窗口類XlsToXml,這個類我們使用eclipse插件SWT Designer來完成
最後把工程打成JAR包,再用NativeJ將Jar包生成為可執行的exe文件

熱點內容
同一段代碼編譯的長度不同 發布:2024-04-20 14:24:14 瀏覽:379
緩存美劇權力的游戲 發布:2024-04-20 14:16:52 瀏覽:987
如何刪除word文件保存密碼 發布:2024-04-20 14:15:18 瀏覽:824
紅米安卓10如何降級到安卓9 發布:2024-04-20 14:13:25 瀏覽:30
ftp目錄遍歷 發布:2024-04-20 13:58:37 瀏覽:970
mysql存儲過程的數組 發布:2024-04-20 13:58:33 瀏覽:60
怎麼樣更改無線網密碼 發布:2024-04-20 13:53:23 瀏覽:883
python用戶 發布:2024-04-20 13:51:46 瀏覽:748
光遇蘋果如何下載安卓服 發布:2024-04-20 13:40:03 瀏覽:460
半歲學編程 發布:2024-04-20 13:17:53 瀏覽:217