用Java创buildExcel文件

我想创build一个Excel文件并写入数据,就像使用Java编写文本文件一样。 我试图将文件扩展名从.txt更改为.xls 。 但是我想在Excel文件中加粗的字母。 我怎样才能做到这一点?

我曾尝试使用JXL API,但是每次创build标签时都要添加无标签。 不能编辑表格的行和列?

 //Find jar from here "http://poi.apache.org/download.html" import java.io.*; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFCell; public class CreateExlFile{ public static void main(String[]args) { try { String filename = "C:/NewExcelFile.xls" ; HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("FirstSheet"); HSSFRow rowhead = sheet.createRow((short)0); rowhead.createCell(0).setCellValue("No."); rowhead.createCell(1).setCellValue("Name"); rowhead.createCell(2).setCellValue("Address"); rowhead.createCell(3).setCellValue("Email"); HSSFRow row = sheet.createRow((short)1); row.createCell(0).setCellValue("1"); row.createCell(1).setCellValue("Sankumarsingh"); row.createCell(2).setCellValue("India"); row.createCell(3).setCellValue("sankumarsingh@gmail.com"); FileOutputStream fileOut = new FileOutputStream(filename); workbook.write(fileOut); fileOut.close(); System.out.println("Your excel file has been generated!"); } catch ( Exception ex ) { System.out.println(ex); } } } 

您可以使用Apache POI创build本地二进制xls文件。

或者你可以使用另一个JExcelApi ,并且据我所知,这个Java库是用于Excel的。

公正的警告关于Apache POI的Excel一代…(我知道这是一个旧的post,但重要的是,如果有人再次像我这样看起来这样)

它有一个内存泄漏问题,据说到2006年已经解决了,但是最近人们还在经历这个问题。 如果你想自动生成大量的Excel(例如,如果你想生成一个单一的,大的文件,大量的小文件,或两者),我build议使用不同的API。 要么是,要么增加JVM堆栈的大小到荒谬的比例,如果你知道你实际上不会使用许多不同的string(尽pipe当然,实习string意味着如果你有大量的不同的string,你将有一个完全不同的程序崩溃的内存问题,所以,在你走这条路线之前考虑)。

改变文件的扩展名不会改变其内容。 扩展名只是一个标签。

如果您想使用Java来处理Excel电子表格,请阅读Apache POI库。

平面文件不允许提供元信息。

我build议写出一个包含所需信息的HTML表格,让Excel读取它。 然后你可以用<b>标签来做你想要的东西。

 File fileName = new File(".....\\Fund.xlsx"); public static void createWorkbook(File fileName) throws IOException { try { FileOutputStream fos = new FileOutputStream(fileName); XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("fund"); Row row = sheet.createRow(0); Cell cell0 = row.createCell(0); cell0.setCellValue("Nav Value"); Cell cell1 = row.createCell(1); cell1.setCellValue("Amount Change"); Cell cell2 = row.createCell(2); cell2.setCellValue("Percent Change"); workbook.write(fos); fos.flush(); fos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

我创build了一个API来更容易地创build一个Excel文件。

创buildExcel – 从模板创buildExcel

只需在实例化时设置所需的值,然后调用execute(),将根据您所需的输出目录创build它。

但是在使用这个之前,你必须有一个Excel模板作为新创build的Excel文件的模板。

另外,您需要在项目的类path中使用Apache POI 。

我也使用了JXLS :它以正确的语法接收数据作为Map和模板EXCEL,并返回正确填充的文件。 每个单元格中的数据必须是公开可见性的JavaBean

如果您必须插入超过一张表格的数据,这并不令人担忧:在这种情况下,我使用了POI 。

要使用POI创build电子表格并格式化单元格,请参阅使用字体示例,并使用:

 font.setBoldweight(Font.BOLDWEIGHT_BOLD); 

POI工作得很好。 有一些你不能做的事情(比如创buildVBAmacros),但是它会用macros来读/写电子表格,所以你可以创build一个合适的模板,读取并用POI操作,然后写出来。