用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表中

java如何导出excel表格,如果用poi,java代码如何实现.,求代码!!!

java poi xwpf操作word生成一个表格怎么合并单元格,求大神指导!

delphi 如何写入Excel