我有点困惑,我曾经这样做过:
HSSFWorkbook wb = new HFFSWorkbook();
但是对于新的POI,我不必这样做。
我不能这样做:
Workbook wb = new Workbook();
我理解WorkbookFactory.create
,但这是打开文件。
如何使用此ss模型设置新工作簿?
答案 0 :(得分:6)
您仍然可以使用SS模型,但需要在创建时决定文件格式。
xls
- > Workbook wb = new HSSFWorkbook();
xlsx
- > Workbook wb = new XSSFWorkbook();
答案 1 :(得分:4)
在“新POI”中,您可以编写/读取XLS文件和XLSX文件。无论如何,对于XLS文件格式,您使用的是:
HSSFWorkbook wb = new HSSFWorkbook();
因此,对于XLSX文件格式,您必须使用:
XSSFWorkbook wb = new XSSFWorkbook();
// you could also do below
// Workbook wb = new XSSFWorkbook();
如果您在下面的链接中提到从XLS迁移到XLSX迁移,那么对您有帮助。
1. http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html
2. http://poi.apache.org/spreadsheet/converting.html
答案 2 :(得分:3)
确保在运行代码之前下载POI JAR文件并将其添加到项目的类路径中。可以在此处找到Apache POI JAR文件。
public void main(String[] args) throws IOException {
// Directory path where the xls file will be created
String destinationFilePath = "C:/Users/devesh_/Documents/HelloWorld.xls";
// Create object of FileOutputStream
FileOutputStream fout = new FileOutputStream(destinationFilePath);
// Build the Excel File
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
HSSFWorkbook workBook = new HSSFWorkbook();
// Create the spreadsheet
HSSFSheet spreadSheet = workBook.createSheet("Hello_World");
// Create the first row
HSSFRow row = spreadSheet.createRow((short) 0);
// Create the cells and write to the file
HSSFCell cell;
// Write Hello
cell = row.createCell(0);
cell.setCellValue(new HSSFRichTextString("Hello"));
// Write World
cell = row.createCell(1);
cell.setCellValue(new HSSFRichTextString("World"));
workBook.write(outputStream);
outputStream.writeTo(fout);
outputStream.close();
fout.close();
}
答案 3 :(得分:1)
创建文件时,您需要预先确定它的格式 - 您不能只等到写出时间才能这样做。您的代码类似于:
Workbook wb = null;
if (shouldBeXLS) {
wb = new HSSFWorkbook();
} else {
wb = new XSSFWorkbook();
}
// work on the file in a generic way
// save, with a suitable name
String filename = "test.xls";
if (!shouldBeXLS) { filename = filename + "x"; }
FileOutputStream fout = new FileOutputStream(filename);
wb.write(fout);
fout.close();
一开始,确定您希望为此特定实例提供哪种格式,然后创建该格式。将其视为一般工作簿,并以通用方式写入。最后,记住它是什么,这样你就可以为文件提供正确的扩展名!
(当读入文件时,WorkbookFactory
将允许您加载文件类型的相应实例。创建新文件时,您必须选择自己,因为那里还没有任何内容!)