如何从java输出到excel

POI我当然知道啦,详细点... POI我当然知道啦,详细点 展开
 我来答
yurentian
2010-08-15 · TA获得超过965个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:337万
展开全部
用JAVA程序,读取或者写入excel文件,通过用jxl或者poi,下面是我给你写的例子。分别是用jxl读写excel文件,用poi读写excel文件。希望对你有帮助。(需要下载jxl和poi的jar包)

package util.excel;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jxl.Cell;
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;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
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.poifs.filesystem.POIFSFileSystem;

public class ExcelUtil {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String outFile = "D:/workspace/JavaStudy/src/util/excel/test.xls";
ExcelUtil.writeExcelByJXL(outFile, null);
}

/**
*
* @title: readExcelByJXL
* @description: 通过jxl读取excel文件
* @author yu ren tian
* @email yurentian@163.com
* @param excelFile
* @return
* @throws IOException
*/
private static List readExcelByJXL(String excelFile) throws IOException {
List rtn = new ArrayList();
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(excelFile);
Workbook excelWorkBook = Workbook.getWorkbook(fileInputStream);
Sheet sheet = excelWorkBook.getSheet(0);
int m = sheet.getRows();
int n = sheet.getColumns();
for (int i = 1; i < m; i++) {
Map map = new HashMap();
for (int j = 0; j < n; j++) {
Cell cell = sheet.getCell(j, i);
String cellContent = cell.getContents();
switch (j) {
case 0:
map.put("studentName", cellContent);
break;
case 1:
map.put("Chinese", cellContent);
break;
case 2:
map.put("Math", cellContent);
break;
case 3:
map.put("English", cellContent);
break;
case 4:
map.put("assess", cellContent);
break;
}
}
rtn.add(map);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != fileInputStream) {
fileInputStream.close();
}
return rtn;
}
}

/**
*
* @title: writeExcelByJXL
* @description: 通过jxl写入excel文件
* @author yu ren tian
* @email yurentian@163.com
* @param outFile
* @param list
* @throws IOException
*/
private static void writeExcelByJXL(String outFile, List list)
throws IOException {
WritableWorkbook wwb;
FileOutputStream fos;
try {
fos = new FileOutputStream(outFile);
// wwb = Workbook.createWorkbook(file);
wwb = Workbook.createWorkbook(fos);
WritableSheet sheet = wwb.createSheet("test", 0);
// 设置单元格的文字格式
WritableFont wf = new WritableFont(WritableFont.ARIAL, 12,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
Colour.BLUE);
WritableCellFormat wcf = new WritableCellFormat(wf);
//wcf.setBackground(Colour.GREEN);
wcf.setBackground(new CustomColor(11, "", 0, 0, 0));
for (int i = 0; i < 10; i++) {
Label label = new Label(i, 0, i + "", wcf);
sheet.addCell(label);
}

wwb.write();
wwb.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
*
* @title: readExcelByPOI
* @description: 通过poi读取excel文件
* @author yu ren tian
* @email yurentian@163.com
* @param excelFile
* @return
* @throws IOException
*/
private static List readExcelByPOI(String excelFile) throws IOException {
List rtn = new ArrayList();
FileInputStream fin = null;
try {
fin = new FileInputStream(excelFile);
POIFSFileSystem fs = new POIFSFileSystem(fin);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
int m = sheet.getLastRowNum() - sheet.getFirstRowNum() + 1;
int n = 5;
for (int i = 1; i < m; i++) {
Map map = new HashMap();
for (int j = 0; j < n; j++) {
HSSFCell cell = sheet.getRow(i).getCell((short) j);
int type = cell.getCellType();
String cellContentString = null;
double cellContentDouble = 0;
if (type == 1) {
cellContentString = cell.getRichStringCellValue()
.getString();
System.out.println("cellContentString="
+ cellContentString);
} else if (type == 0) {
cellContentDouble = cell.getNumericCellValue();
System.out.println("cellContentDouble="
+ cellContentDouble);
}
System.out.println("j=" + j);
switch (j) {
case 0:
map.put("studentName", cellContentString);
break;
case 1:
map.put("Chinese", new Double(cellContentDouble));
break;
case 2:
map.put("Math", new Double(cellContentDouble));
break;
case 3:
map.put("English", new Double(cellContentDouble));
break;
case 4:
map.put("assess", cellContentString);
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fin != null) {
fin.close();
}
return rtn;
}
}

/**
*
* @title: writeExcelByPOI
* @description: 通过poi写入excel
* @author yu ren tian
* @email yurentian@163.com
* @param outFile
* @param list
* @throws IOException
*/
private static void writeExcelByPOI(String outFile, List list)
throws IOException {
FileOutputStream fos = new FileOutputStream(outFile);
HSSFWorkbook wb = new HSSFWorkbook();
for (int sheetCount = 0; sheetCount < 5; sheetCount++) {
HSSFSheet sheet = wb.createSheet("组织" + (sheetCount + 1));
for (int rowCount = 0; rowCount < 10; rowCount++) {
for (int columnCount = 0; columnCount < 10; columnCount++) {
HSSFRow row = sheet.createRow(rowCount);
HSSFCell cell = row.createCell(new Short(columnCount + ""));
HSSFRichTextString richTextString = new HSSFRichTextString(
"行=" + rowCount + " 列=" + columnCount);
cell.setCellValue(richTextString);
}
}
}
wb.write(fos);
}
}
day忘不掉的痛
2015-08-08 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223941
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
如果是JSP页面要导出成excel,依靠javascript就可以实现了,具体你试试上面的代码
<input type="button" value="保存为 Excel">
<script language="javascript">
function AllAreaExcel() {
var title;
title=document.getElementsByTagName("table")[0].childNodes.item(0).childNodes(0).childNodes(0).innerText;
alert(title);
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
//从excel的第5行开始插入
oSheet.Range("A5").select;
oWB .Worksheets(1).Activate;
oSheet.Cells(3,1).Value=title; //在第3行插入报表头
oWB.Worksheets(1).Range("A3:I3").merge(); // 合并单元格区域 A3:I3
oWB.Worksheets(1).Range("A3:I3").HorizontalAlignment=3; //居中对齐A3:I3
var sel=document.body.createTextRange();
sel.moveToElementText(table1); //table 的ID值
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
}
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式