我希望创建一个 Excel 文件,并像使用 Java 写文本文件一样写入数据。我尝试将文件扩展名从 .txt
更改为 .xls
。但是我想在 Excel 文件中加粗字母。我该怎么做?
我已经尝试使用 JXL API,但每次我都必须创建一个标签,而我不想添加任何标签。不能编辑表格的行和列吗?
//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;
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();
workbook.close();
System.out.println("Your excel file has been generated!");
} catch ( Exception ex ) {
System.out.println(ex);
}
}
}
关于Apache POI的Excel生成,需要提前警告...
我知道这是一篇旧帖子,但如果有人像我一样再次查阅相关信息,这很重要。
它存在内存泄漏问题,虽然据说在2006年已经解决了,但最近仍有人遇到了类似问题。如果你想自动化生成大量的Excel(即如果你想生成一个大文件、大量小文件或两者兼而有之),我建议使用不同的API。或者增加JVM堆栈大小到荒谬的程度,如果你知道实际上不会使用太多不同的字符串,可以考虑字符串池技术(interning strings)。然而,当然,这意味着如果你有大量不同的字符串,你将面临完全不同的程序崩溃内存问题。所以,在采用这种方法之前,请考虑好这些风险。
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();
}
}
平面文件无法提供元信息。
我建议编写包含所需信息的HTML表格,并让Excel读取它。然后,您可以使用<b>标签来实现您想要的效果。
我个人使用 IntelliJ IDEA,其中一些操作可能会更加复杂… 我认为。
因此,如果您想要创建一个带有扩展名的 Excel 文件:.CSV,.XLSX,.XLS,那么您必须下载 Apache Poi(最新版本)。 https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-5.1.0-20211024.zip
之后,您必须创建一个 MAVEN 项目,并在 pom.xml 中添加一些依赖项。 https://www.tutorialspoint.com/maven/maven_external_dependencies.htm
就这样。 这对我有效,希望您满意!
最好的问候, TalladegaRS6
要使用POI创建电子表格并格式化单元格,请参见Working with Fonts示例,并使用:
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
POI的功能非常强大。有一些事情你不能做(比如创建VBA宏),但它可以读写带有宏的电子表格,因此你可以创建一个合适的模板表格,用POI来读取和操作它,然后再将其写出。