用Java写入Excel
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java写入Excel相关的知识,希望对你有一定的参考价值。
我在论坛上搜索没有占上风,所以我在这里。
我正在尝试实现一个写入Excel的方法,但每次它只会破坏文件。这是我的代码片段:
public static XSSFSheet printToExcel (ArrayList<String> al, Workbook wb, XSSFSheet s, FileWriter fw) throws FileNotFoundException, IOException {
int numOfRows = s.getPhysicalNumberOfRows();
for (int i = 0; i <= numOfRows; i++ ) {
XSSFRow row = s.createRow(i);
XSSFCell cell = row.createCell(i);
String text = al.get(i);
cell.setCellValue(text);
fw.write(text);
fw.close();
}
return s;
}
希望你们都能帮助我。我大多是自学成才,所以任何建议都会受到赞赏。
答案
这是我在另一个上下文中写的一个例子,但它会帮助你开始
import org.apache.poi.common.usermodel.HyperlinkType;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Hyperlink;
import org.apache.poi.xssf.usermodel.*;
import java.awt.*;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteExcelBasic {
public static void main(String[] args) throws IOException {
String excelFileName = "/Users/home/Test3.xlsx";
FileOutputStream fos = new FileOutputStream(excelFileName);
XSSFWorkbook wb = new XSSFWorkbook();
XSSFCellStyle style = wb.createCellStyle();
XSSFSheet sheet = wb.createSheet("sheet");
XSSFFont urlFont = wb.createFont();// changed lines
urlFont.setFontHeight((short)(9*20));
// urlFont.setUnderline((byte)10);
//urlFont.setBold(true);
urlFont.setFontName("Arial");
urlFont.setItalic(true);
urlFont.setColor(new XSSFColor(Color.BLUE)); // changed lines
style.setFont(urlFont);
for (int r = 0; r < 3; r++) {
XSSFRow row = sheet.createRow(r);
for (int c = 0; c < 3; c++) {
XSSFCell cell = row.createCell(c);
Hyperlink link = wb.getCreationHelper().createHyperlink(HyperlinkType.URL);
String ss = "http://news.google.com/news/headlines?ned=us&hl=en";
//String ss = "swasdqde";
link.setAddress(ss);
cell.setHyperlink(link);
cell.setCellValue(ss);
if(r == 1) {
System.out.println("In yellow");
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setFillForegroundColor(new XSSFColor(Color.YELLOW));
} else {
System.out.println("In red");
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
style.setFillForegroundColor(new XSSFColor(Color.RED));
}
cell.setCellStyle(style);
}
}
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
wb.write(baos);
byte[] myByteArray = baos.toByteArray();
fos.write(myByteArray);
fos.flush();
}
finally {
wb.close();
fos.close();
}
}
}
以上是关于用Java写入Excel的主要内容,如果未能解决你的问题,请参考以下文章
用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的完整代码
用java 和 poi 怎么创建一个excel,然后写入数据;还有怎么在原有的一个excel里添加数据(原有数据的)?
java如何导出excel表格,如果用poi,java代码如何实现.,求代码!!!