當前位置:首頁 » 網頁前端 » javawebexcel導出
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javawebexcel導出

發布時間: 2022-04-16 14:47:58

Ⅰ java怎麼從頁面導出excel

分享一個寫過的例子,網上應該找的到的
response.setHeader("Content-disposition",
"attachment;filename="+ URLEncoder.encode("表名", "utf-8")+".xls");
response.setContentType("application/msexcel;charset=GBK");
ServletOutputStream writer = response.getOutputStream();
ExcelUtil excel = new ExcelUtil(ExcelUtil.ExcelType.XLS, "表名" );

String[] excelHeadRow1 = new String[] {"序號","人員編號", "姓名", "1", "2","3","4","5","6","7","8","備注"};
int uiCount;
for(uiCount=0;uiCount<userInfoList.size();uiCount++){
UserInfo ui=userInfoList.get(uiCount);
excel.addCell(0, uiCount + 3, ""+(uiCount+1), cesHeader);//序號
excel.addCell(1, uiCount + 3, ui.getPersonNo(), cesHeader);//人員編號
excel.addCell(2, uiCount + 3, ui.getName(), cesHeader);//名字
excel.addCell(3, uiCount + 3, ui.getJobLevel(), cesHeader);//1
excel.addCell(4, uiCount + 3, money, cesHeader);// 2
excel.addCell(5, uiCount + 3, "1", cesHeader);//3
excel.addCell(6, uiCount + 3, money1, cesHeader);//4
excel.addCell(7, uiCount + 3, "1", cesHeader);//5
excel.addCell(8, uiCount + 3, "", cesHeader);//6
excel.addCell(9, uiCount + 3, "", cesHeader); //7
excel.addCell(10, uiCount + 3, String.valueOf(total), cesHeader);//8
excel.addCell(11, uiCount + 3, "", cesHeader); //備注
}

Ⅱ 如何導出java工程項目裡面的excel文件

request.setCharacterEncoding("utf-8");
String title = request.getParameter("title");
//title = URLDecoder.decode(title,"utf-8");
int maid = Integer.parseInt(request.getParameter("maid"));
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition" ,"attachment;filename="+new String((title+".xls").getBytes(),"ISO-8859-1"));
//ManuscriptAction down=new ManuscriptAction();

WebApplicationContext webAppContext = WebApplicationContextUtils.(getServletContext());//得到WebApplicationContext 。
ManuscriptDaoImp cocAutoService = (ManuscriptDaoImp) webAppContext.getBean("manuscriptDaoImp");
cocAutoService.exportMan(maid,title,response.getOutputStream());

out.clear();
out = pageContext.pushBody();

我的下載代碼 提供你參考

Ⅲ 在Java Web開發時怎麼將頁面上的數據用Excel報表導出來

有兩種方法一個是用POI,另一種是JXL都是別人的包,自己操作到處excel
自己在前端寫一個彈出窗口選擇路徑之後傳到代碼里操作
並不能像javaswing那樣方便的使用導入導出功能web需要自己實現

Ⅳ java web poi如何按查詢結果導出相應的Excel

package com.aerolink.aocs.util.fileUtil;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;

//import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class WriteExcelNew {

/**
* Excel文件
*/
private XSSFWorkbook wb = null;

/**
* 輸出Excel文件中的表對象
*/
private XSSFSheet sheet = null;

/**
* 輸出文件流
*/
private FileOutputStream fileOut = null;

/**
* 輸出文件名用戶自定義
*/
private String outputFilename = null;

/**
* 單元格樣式
*/
private XSSFCellStyle cellStyle = null;

// private String newsheet = null; //輸出Excel文件中的表名用戶自定義
/**
* 行
*/
private XSSFRow row=null;

/**
*
*/
private int rowNumber=-1;
/**
* @param outputFilename
* @param newsheet
*/
public WriteExcelNew(String outputFilename, String newsheet) {

wb = new XSSFWorkbook();
//wb.setSheetName(1, "qwe");//設置第一張表的名稱
sheet = wb.createSheet(newsheet);
//sheet.setColumnWidth(1, 40);//第一行 列寬
this.outputFilename = outputFilename;
// this.newsheet = newsheet;
}

/**
* <p>
* Description:exportToExcelFile(short rownum,short cellnum,int value)方法:
* </p>
* <p>
* 將int數據寫入Execl文件的表中
* </p>
*
* @param rownum
* @param cellnum
* @param value
*/
public void exportToExcelFile(int rownum, int cellnum, int value) {
if(rowNumber==-1){ //在poi3.8版本中,不這樣做,只能寫入最後一個單元格
rowNumber=rownum;
row = sheet.createRow(rownum);
}else if(rowNumber!=rownum){
rowNumber=rownum;
row = sheet.createRow(rownum);
}
//row.setHeight((short)50);//行高
XSSFCell cell = row.createCell(cellnum);
cell.setCellValue(value);
if(cellStyle==null){
setCellStyle("center","center","",false);
}
cell.setCellStyle(cellStyle);
}

/**
* <p>
* Description:exportToExcelFile(short rownum,short cellnum,String value)方法:
* </p>
* <p>
* 將String數據寫入Execl文件的表中
* </p>
*
* @param rownum
* @param cellnum
* @param value
*/
public void exportToExcelFile(int rownum, int cellnum, String value) {
if(rowNumber==-1){ //在poi3.8版本中,不這樣做,只能寫入最後一個單元格
rowNumber=rownum;
row = sheet.createRow(rownum);
}else if(rowNumber!=rownum){
rowNumber=rownum;
row = sheet.createRow(rownum);
}
XSSFCell cell = row.createCell(cellnum);
cell.setCellValue(value);
if(cellStyle==null){
setCellStyle("center","center","",false);
}
cell.setCellStyle(cellStyle);
}

Ⅳ java web 導出excel文件的方式

1微軟提供的PAI方式 ;
優點是:API比較全,可以實現excel提供的各種需求;
缺點:和office框架綁定,伺服器端還需要配置com組件,有時配置了也調不了,原因不清;
導出的速度慢;
2微軟提供的VSTO:
基於excel上開發
缺點是:不好嵌入到web中 ;
3種是poi,apache提供的第三方包:
優點:速度快;
缺點:支持office版本比較有限制;
4openxml4j;
優點:速度快支持office2012,版本比較高

Ⅵ java excel導出到用戶本地

一般來說做下載功能的確是先導到伺服器的一個臨時目錄上的,然後再用一段代碼把這個excel讀出來,並且輸出到response流裡面去,給你一段可以用的代碼

//------------------------------
//step1.保存一個臨時excel到temp目錄下
//------------------------------
//這部分自己實現,我相信你已經實現了
//假設你已經實現了保存一個excel到一個臨時文件夾裡面去
//並且已經生成了一個File指向這個臨時的excel,名叫exportFile

//-------------------------------
//step2.彈出下載對話框
//-------------------------------
if(exportFile==null){
logger.error("生成excel錯誤!exportFile為空");
return;
}

//先建立一個文件讀取流去讀取這個臨時excel文件
FileInputStreamfs=null;
try{
fs=newFileInputStream(exportFile);
}catch(FileNotFoundExceptione){
logger.error("生成excel錯誤!"+exportFile+"不存在!",e);
return;
}
//設置響應頭和保存文件名
HttpServletResponseresponse=ServletActionContext.getResponse();
//這個一定要設定,告訴瀏覽器這次請求是一個下載的數據流
response.setContentType("APPLICATION/OCTET-STREAM");
try{
//這邊的"采購部門本月采購報表.xls"替換成你自己要顯示給用戶的文件名
excelName=URLEncoder.encode("采購部門本月采購報表.xls","UTF-8");
}catch(){
logger.error("轉換excel名稱編碼錯誤!",e1);
}
response.setHeader("Content-Disposition","attachment;filename=""+excelName+""");
//寫出流信息
intb=0;
try{
//這里的response就是你servlet的那個傳參進來的response
PrintWriterout=response.getWriter();
while((b=fs.read())!=-1){
out.write(b);
}
fs.close();
out.close();
logger.debug(sheetName+"文件下載完畢.");
}catch(Exceptione){
logger.error(sheetName+"下載文件失敗!.",e);
}


把這段代碼放到你的servlet的最後一部分

Ⅶ java web項目: 一個excel文件以二進制的形式存在資料庫中 如何將它導出並

poi讀取即可。
/**
* 讀取Excel數據內容
* @param InputStream
* @return Map 包含單元格數據內容的Map對象
*/
public Map<Integer, String> readExcelContent(InputStream is) {
Map<Integer, String> content = new HashMap<Integer, String>();
String str = "";
try {
fs = new POIFSFileSystem(is);
wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
}
sheet = wb.getSheetAt(0);
// 得到總行數
int rowNum = sheet.getLastRowNum();
row = sheet.getRow(0);
int colNum = row.getPhysicalNumberOfCells();
// 正文內容應該從第二行開始,第一行為表頭的標題
for (int i = 1; i <= rowNum; i++) {
row = sheet.getRow(i);
int j = 0;
while (j < colNum) {
// 每個單元格的數據內容用"-"分割開,以後需要時用String類的replace()方法還原數據
// 也可以將每個單元格的數據設置到一個javabean的屬性中,此時需要新建一個javabean
// str += getStringCellValue(row.getCell((short) j)).trim() +
// "-";
str += getCellFormatValue(row.getCell((short) j)).trim() + " ";
j++;
}
content.put(i, str);
str = "";
}
return content;
}

Ⅷ java web poi如何按查詢結果導出相應的Excel最好有相應代碼實例。

package com.aerolink.aocs.util.fileUtil;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;

//import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class WriteExcelNew {

/**
* Excel文件
*/
private XSSFWorkbook wb = null;

/**
* 輸出Excel文件中的表對象
*/
private XSSFSheet sheet = null;

/**
* 輸出文件流
*/
private FileOutputStream fileOut = null;

/**
* 輸出文件名用戶自定義
*/
private String outputFilename = null;

/**
* 單元格樣式
*/
private XSSFCellStyle cellStyle = null;

// private String newsheet = null; //輸出Excel文件中的表名用戶自定義
/**
* 行
*/
private XSSFRow row=null;

/**
*
*/
private int rowNumber=-1;
/**
* @param outputFilename
* @param newsheet
*/
public WriteExcelNew(String outputFilename, String newsheet) {

wb = new XSSFWorkbook();
//wb.setSheetName(1, "qwe");//設置第一張表的名稱
sheet = wb.createSheet(newsheet);
//sheet.setColumnWidth(1, 40);//第一行 列寬
this.outputFilename = outputFilename;
// this.newsheet = newsheet;
}

/**
* <p>
* Description:exportToExcelFile(short rownum,short cellnum,int value)方法:
* </p>
* <p>
* 將int數據寫入Execl文件的表中
* </p>
*
* @param rownum
* @param cellnum
* @param value
*/
public void exportToExcelFile(int rownum, int cellnum, int value) {
if(rowNumber==-1){ //在poi3.8版本中,不這樣做,只能寫入最後一個單元格
rowNumber=rownum;
row = sheet.createRow(rownum);
}else if(rowNumber!=rownum){
rowNumber=rownum;
row = sheet.createRow(rownum);
}
//row.setHeight((short)50);//行高
XSSFCell cell = row.createCell(cellnum);
cell.setCellValue(value);
if(cellStyle==null){
setCellStyle("center","center","",false);
}
cell.setCellStyle(cellStyle);
}

/**
* <p>
* Description:exportToExcelFile(short rownum,short cellnum,String value)方法:
* </p>
* <p>
* 將String數據寫入Execl文件的表中
* </p>
*
* @param rownum
* @param cellnum
* @param value
*/
public void exportToExcelFile(int rownum, int cellnum, String value) {
if(rowNumber==-1){ //在poi3.8版本中,不這樣做,只能寫入最後一個單元格
rowNumber=rownum;
row = sheet.createRow(rownum);
}else if(rowNumber!=rownum){
rowNumber=rownum;
row = sheet.createRow(rownum);
}
XSSFCell cell = row.createCell(cellnum);
cell.setCellValue(value);
if(cellStyle==null){
setCellStyle("center","center","",false);
}
cell.setCellStyle(cellStyle);
}

/**
* <p>
* Description:exportToExcelFile(short rownum,short cellnum,double value)方法:
* </p>
* <p>
* 將double數據寫入Execl文件的表中
* </p>
*
* @param rownum
* @param cellnum
* @param value
*/
public void exportToExcelFile(int rownum, int cellnum, double value) {
if(rowNumber==-1){ //在poi3.8版本中,不這樣做,只能寫入最後一個單元格
rowNumber=rownum;
row = sheet.createRow(rownum);
}else if(rowNumber!=rownum){
rowNumber=rownum;
row = sheet.createRow(rownum);
}
XSSFCell cell = row.createCell(cellnum);
cell.setCellValue(value);
if(cellStyle==null){
setCellStyle("center","center","",false);
}
cell.setCellStyle(cellStyle);
}

/**
* <p>
* Description:exportToExcelFile(short rownum,short cellnum,boolean
* value)方法:
* </p>
* <p>
* 將boolean數據寫入Execl文件的表中
* </p>
*
* @param rownum
* @param cellnum
* @param value
*/
public void exportToExcelFile(int rownum, int cellnum, boolean value) {
if(rowNumber==-1){ //在poi3.8版本中,不這樣做,只能寫入最後一個單元格
rowNumber=rownum;
row = sheet.createRow(rownum);
}else if(rowNumber!=rownum){
rowNumber=rownum;
row = sheet.createRow(rownum);
}
XSSFCell cell = row.createCell(cellnum);
cell.setCellValue(value);
if(cellStyle==null){
setCellStyle("center","center","",false);
}
cell.setCellStyle(cellStyle);
}

/**
* <p>
* Description:exportToExcelFile(short rownum,short cellnum,Date value)方法:
* </p>
* <p>
* 將Date數據寫入Execl文件的表中
* </p>
*
* @param rownum
* @param cellnum
* @param value
*/
public void exportToExcelFile(int rownum, int cellnum, Date value) {
if(rowNumber==-1){ //在poi3.8版本中,不這樣做,只能寫入最後一個單元格
rowNumber=rownum;
row = sheet.createRow(rownum);
}else if(rowNumber!=rownum){
rowNumber=rownum;
row = sheet.createRow(rownum);
}
XSSFCell cell = row.createCell(cellnum);
cell.setCellValue(value);
if(cellStyle==null){
setCellStyle("center","center","",false);
}
cell.setCellStyle(cellStyle);
}

/**
* <p>
* Description:exportToExcelFile(short rownum,short cellnum,Calendar
* value)方法:
* </p>
* <p>
* 將Calendar數據寫入Execl文件的表中
* </p>
*
* @param rownum
* @param cellnum
* @param value
*/
public void exportToExcelFile(int rownum, int cellnum, Calendar value) {
if(rowNumber==-1){ //在poi3.8版本中,不這樣做,只能寫入最後一個單元格
rowNumber=rownum;
row = sheet.createRow(rownum);
}else if(rowNumber!=rownum){
rowNumber=rownum;
row = sheet.createRow(rownum);
}
XSSFCell cell = row.createCell(cellnum);
cell.setCellValue(value);
if(cellStyle==null){
setCellStyle("center","center","",false);
}
cell.setCellStyle(cellStyle);
}
/**
* 合並單元格 2012-3-30 孫貴春 add
* @param startRow
* @param startCol
* @param endRow
* @param endCol
*/
public void setMergedRegion(int startRow,int startCol,int endRow,int endCol){
sheet.addMergedRegion(new CellRangeAddress(startRow,endRow,startCol,endCol));//這與1.5版本明顯不同
}
/**
* 設置單元格樣式
* @param a_pos
* @param v_pos
* @param border
* @param wrap
*/
public void setCellStyle(String a_pos,String v_pos,String border,Boolean wrap){
cellStyle=wb.createCellStyle();
//水平位置
if(a_pos.equals("center")){
cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
}else if(a_pos.equals("left")){
cellStyle.setAlignment(CellStyle.ALIGN_LEFT);
}else{
cellStyle.setAlignment(CellStyle.ALIGN_RIGHT);
}
//垂直位置
if(v_pos.equals("center")){
cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
}else if(v_pos.equals("top")){
cellStyle.setVerticalAlignment(CellStyle.VERTICAL_TOP);
}else{
cellStyle.setVerticalAlignment(CellStyle.VERTICAL_BOTTOM);
}
//邊框
if(border.equals("thin")){
cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
cellStyle.setBorderLeft(CellStyle.BORDER_THIN);
cellStyle.setBorderRight(CellStyle.BORDER_THIN);
cellStyle.setBorderTop(CellStyle.BORDER_THIN);
}else if(border.equals("double")){
cellStyle.setBorderBottom(CellStyle.BORDER_DOUBLE);
cellStyle.setBorderLeft(CellStyle.BORDER_DOUBLE);
cellStyle.setBorderRight(CellStyle.BORDER_DOUBLE);
cellStyle.setBorderTop(CellStyle.BORDER_DOUBLE);
}else if(border.equals("thick")){
cellStyle.setBorderBottom(CellStyle.BORDER_THICK);
cellStyle.setBorderLeft(CellStyle.BORDER_THICK);
cellStyle.setBorderRight(CellStyle.BORDER_THICK);
cellStyle.setBorderTop(CellStyle.BORDER_THICK);
}else if(border.equals("medium")){
cellStyle.setBorderBottom(CellStyle.BORDER_MEDIUM);
cellStyle.setBorderLeft(CellStyle.BORDER_MEDIUM);
cellStyle.setBorderRight(CellStyle.BORDER_MEDIUM);
cellStyle.setBorderTop(CellStyle.BORDER_MEDIUM);
}else if(border.equals("none")){
cellStyle.setBorderBottom(CellStyle.BORDER_NONE);
cellStyle.setBorderLeft(CellStyle.BORDER_NONE);
cellStyle.setBorderRight(CellStyle.BORDER_NONE);
cellStyle.setBorderTop(CellStyle.BORDER_NONE);
}else if(border.equals("dotted")){
cellStyle.setBorderBottom(CellStyle.BORDER_DOTTED);
cellStyle.setBorderLeft(CellStyle.BORDER_DOTTED);
cellStyle.setBorderRight(CellStyle.BORDER_DOTTED);
cellStyle.setBorderTop(CellStyle.BORDER_DOTTED);
}
//設置自動換行
cellStyle.setWrapText(wrap);
/*
cellStyle.setRotation((short)90);//設置單元格內文字旋轉角度
XSSFFont font=wb.createFont();
font.setFamily(1);
font.setBold(true);
cellStyle.setFont(font);
*/
}

/**
* <p>
* Description: closeFileOut()方法:關閉文件輸出流
* </p>
*
* @throws IOException
*/
public void closeFileOut() throws IOException {

fileOut = new FileOutputStream(outputFilename);
wb.write(fileOut);
fileOut.close();
}

/**
* <p>
* 測試方法
* </p>
*
* @param arg
*/
public static void main(String arg[]) {

try {
WriteExcelNew writeExcel = new WriteExcelNew("bak\\new.xls", "newsheet");
writeExcel.exportToExcelFile((short) 0, (short) 0, 99.99);
writeExcel.closeFileOut();
} catch (Exception e) {
System.out.println("Something Happen");
e.printStackTrace();
}
}
}

Ⅸ javaweb 導出excel需要哪些jar包

java導出Excel需要用到poi的jar包,

// 第一步,創建一個webbook,對應一個Excel文件

HSSFWorkbook wb = new HSSFWorkbook();

// 第二步,在webbook中添加一個sheet,對應Excel文件中的sheet

HSSFSheet sheet = wb.createSheet("學生表一");

// 第三步,在sheet中添加表頭第0行,注意老版本poi對Excel的行數列數有限制short

HSSFRow row = sheet.createRow((int) 0);

// 第四步,創建單元格,並設置值表頭 設置表頭居中

HSSFCellStyle style = wb.createCellStyle();

style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 創建一個居中格式

HSSFCell cell = row.createCell((short) 0);

cell.setCellValue("學號");

cell.setCellStyle(style);

cell = row.createCell((short) 1);

cell.setCellValue("姓名");

cell.setCellStyle(style);

cell = row.createCell((short) 2);

cell.setCellValue("年齡");

cell.setCellStyle(style);

cell = row.createCell((short) 3);

cell.setCellValue("生日");

cell.setCellStyle(style);

// 第五步,寫入實體數據 實際應用中這些數據從資料庫得到,

List list = CreateSimpleExcelToDisk.getStudent();

for (int i = 0; i < list.size(); i++)

{

row = sheet.createRow((int) i + 1);

Student stu = (Student) list.get(i);

// 第四步,創建單元格,並設置值

row.createCell((short) 0).setCellValue((double) stu.getId());

row.createCell((short) 1).setCellValue(stu.getName());

row.createCell((short) 2).setCellValue((double) stu.getAge());

cell = row.createCell((short) 3);

cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(stu

.getBirth()));

}

// 第六步,將文件存到指定位置

try

{

FileOutputStream fout = new FileOutputStream("E:/students.xls");

wb.write(fout);

fout.close();

}

catch (Exception e)

{

e.printStackTrace();

}

}

Ⅹ Java Web項目如何實現Excel 表格導出呢

用jxl導出吧,很方便的