Java 如何编写excel文件
嗨,我想创建一个excel文件,我需要从java应用程序中添加数据,并需要使用java应用程序再次查看这些数据。我使用java jxl库文件来完成这项工作。 我可以打开用MS excel创建的excel文件,但打开时没有任何问题。但我无法打开由java应用程序创建的excel文件。因为我认为原因是我的应用程序没有创建excel文件。它只是创建扩展名为“.xls”的文件。我无论如何都可以在excel中打开文件 当我打开应用程序创建的文件时,使用ms excel出现错误“文件格式和扩展名不匹配。等等” 但是ms excel还是打开了那个文件 当我要保存它时,它会说“如果将工作簿保存为文本制表符分隔符,它中的某些功能可能会丢失” 如何解决这个问题 创建xls文件的代码。请帮助我完成此代码Java 如何编写excel文件,java,excel,Java,Excel,嗨,我想创建一个excel文件,我需要从java应用程序中添加数据,并需要使用java应用程序再次查看这些数据。我使用java jxl库文件来完成这项工作。 我可以打开用MS excel创建的excel文件,但打开时没有任何问题。但我无法打开由java应用程序创建的excel文件。因为我认为原因是我的应用程序没有创建excel文件。它只是创建扩展名为“.xls”的文件。我无论如何都可以在excel中打开文件 当我打开应用程序创建的文件时,使用ms excel出现错误“文件格式和扩展名不匹配。等等
try {
WritableWorkbook copy=Workbook.createWorkbook(new File("C:\\Users\\FxMax\\Desktop\\demo.xls"));//create file
WritableSheet Wsheet = copy.getSheet(0); //create sheet
TableModel mode=table.getModel(); //create table model for jtable
String s=mode.getValueAt(0, 0).toString();//get value at 0,0 cell @jtable
copy.write();
copy.close();
} catch (Exception e) {
}
这是用于读取文件的代码
JFileChooser choose = new JFileChooser();
choose.setFileSelectionMode(JFileChooser.FILES_ONLY);
FileNameExtensionFilter fileF = new FileNameExtensionFilter("Excel file", "xls");
choose.setFileFilter(fileF);
int res = choose.showOpenDialog(jFileChooser1);
if (res == JFileChooser.APPROVE_OPTION) {
//File file =choose.getSelectedFile(); //getFile
String filePath = choose.getSelectedFile().getAbsolutePath();//getFilePath
File f = new File(filePath);
//System.out.println(filePath);
Workbook w;
try {
w = Workbook.getWorkbook(f);
Sheet sheet = w.getSheet(0);
for (int i = 1; i < sheet.getRows(); i++) {
String cell0 = sheet.getCell(0, i).getContents();
String cell1 = sheet.getCell(1, i).getContents();
String f1 = sheet.getCell(2, i).getContents();
float cell2 = Float.valueOf(f1);
float cell3 = Float.valueOf(sheet.getCell(3, i).getContents());
Object[] cells = {cell0, cell1, cell2, cell3,};
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.addRow(cells);
}
} catch (Exception e) {
}
} else {
}
}
JFileChooser choose=newjfilechooser();
选择.setFileSelectionMode(仅限JFileChooser.FILES_);
FileNameExtensionFilter fileF=新的FileNameExtensionFilter(“Excel文件”、“xls”);
选择.setFileFilter(fileF);
int res=choose.showOpenDialog(jFileChooser1);
if(res==JFileChooser.APPROVE\u选项){
//File File=choose.getSelectedFile();//getFile
String filePath=choose.getSelectedFile().getAbsolutePath();//getFilePath
文件f=新文件(文件路径);
//System.out.println(文件路径);
工作手册w;
试一试{
w=Workbook.getWorkbook(f);
图纸=w.getSheet(0);
对于(int i=1;i
如果使用poi
则更容易
将poi依赖项添加到您的pom
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
阅读也是如此。检查
poi
文档。如果使用poi
则更容易
将poi依赖项添加到您的pom
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
阅读也是如此。检查
poi
文档。如果使用poi
则更容易
将poi依赖项添加到您的pom
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
阅读也是如此。检查
poi
文档。如果使用poi
则更容易
将poi依赖项添加到您的pom
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
阅读也是如此。查看
poi
文档。Apache poi对我来说是这样工作的:
HSSFWorkbook workbook = new HSSFWorkbook();
Iterator<E> iterator = elementList.iterator();
for (int wsNum = 0; wsNum <= (totalNumberOfElements / 65536); wsNum++) {
HSSFSheet worksheet = workbook.createSheet("Name of worksheet " + wsNum);
for (long i = wsNum * 65536; i < ((wsNum + 1) * 65536); i++) {
int ii = ((Long) (i % 65536)).intValue();
if (!iterator.hasNext()) {
break;
}
HSSFRow row = worksheet.createRow(ii);
E e = iterator.next();
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
{
HSSFCell cell = row.createCell(columnNum);
cell.setCellValue(e.getProperty(columnNum)); //figure out something smart for this one
}
}
}
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
worksheet.autoSizeColumn(columnNum);
}
return workbook;
需要注意的重要一点是,如果您希望将大量数据导出到Excel文件中,由于原始XLS格式的限制,一个工作表中总共只能有65536行。Apache POI对我来说是这样工作的:
HSSFWorkbook workbook = new HSSFWorkbook();
Iterator<E> iterator = elementList.iterator();
for (int wsNum = 0; wsNum <= (totalNumberOfElements / 65536); wsNum++) {
HSSFSheet worksheet = workbook.createSheet("Name of worksheet " + wsNum);
for (long i = wsNum * 65536; i < ((wsNum + 1) * 65536); i++) {
int ii = ((Long) (i % 65536)).intValue();
if (!iterator.hasNext()) {
break;
}
HSSFRow row = worksheet.createRow(ii);
E e = iterator.next();
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
{
HSSFCell cell = row.createCell(columnNum);
cell.setCellValue(e.getProperty(columnNum)); //figure out something smart for this one
}
}
}
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
worksheet.autoSizeColumn(columnNum);
}
return workbook;
需要注意的重要一点是,如果您希望将大量数据导出到Excel文件中,由于原始XLS格式的限制,一个工作表中总共只能有65536行。Apache POI对我来说是这样工作的:
HSSFWorkbook workbook = new HSSFWorkbook();
Iterator<E> iterator = elementList.iterator();
for (int wsNum = 0; wsNum <= (totalNumberOfElements / 65536); wsNum++) {
HSSFSheet worksheet = workbook.createSheet("Name of worksheet " + wsNum);
for (long i = wsNum * 65536; i < ((wsNum + 1) * 65536); i++) {
int ii = ((Long) (i % 65536)).intValue();
if (!iterator.hasNext()) {
break;
}
HSSFRow row = worksheet.createRow(ii);
E e = iterator.next();
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
{
HSSFCell cell = row.createCell(columnNum);
cell.setCellValue(e.getProperty(columnNum)); //figure out something smart for this one
}
}
}
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
worksheet.autoSizeColumn(columnNum);
}
return workbook;
需要注意的重要一点是,如果您希望将大量数据导出到Excel文件中,由于原始XLS格式的限制,一个工作表中总共只能有65536行。Apache POI对我来说是这样工作的:
HSSFWorkbook workbook = new HSSFWorkbook();
Iterator<E> iterator = elementList.iterator();
for (int wsNum = 0; wsNum <= (totalNumberOfElements / 65536); wsNum++) {
HSSFSheet worksheet = workbook.createSheet("Name of worksheet " + wsNum);
for (long i = wsNum * 65536; i < ((wsNum + 1) * 65536); i++) {
int ii = ((Long) (i % 65536)).intValue();
if (!iterator.hasNext()) {
break;
}
HSSFRow row = worksheet.createRow(ii);
E e = iterator.next();
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
{
HSSFCell cell = row.createCell(columnNum);
cell.setCellValue(e.getProperty(columnNum)); //figure out something smart for this one
}
}
}
for(int columnNum = 0; columnNum < maxColumnNum; columnNum++)
worksheet.autoSizeColumn(columnNum);
}
return workbook;
需要注意的重要一点是,如果希望将大量数据导出到Excel文件中,由于原始XLS格式的限制,一个工作表中总共只能有65536行