Tep*_*ite 7 java apache excel swing apache-poi
我试图写入Excel文件,但我一直收到错误:
线程"main"中的异常org.apache.poi.POIXMLException:org.apache.poi.openxml4j.exceptions.InvalidFormatException:包应包含内容类型部分[M1.13]
根据我的理解,我错过了一个jar文件.
任何人都可以帮我识别它是哪个文件?
PS我正在使用Netbeans.
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JOptionPane;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
*
* @author nicholaskissaun
*/
public class Tester {
public static void main (String args \[\])throws FileNotFoundException, IOException, InvalidFormatException{
int RowCount = 7, iChoice;
String sChoice;
XSSFSheet s;
XSSFRow row1;
XSSFWorkbook wb;
XSSFCell r1c1, r1c2, r1c8, r1Episodes;
FileInputStream fis = new FileInputStream("/Users/nicholaskissaun/Google Drive/Grade 11_12/Computer Science/Java/Term1/src/IA/Profiles/Becky/ShowDetails.xlsx");
wb = new XSSFWorkbook(fis);
s = wb.getSheetAt(0);
}
}
Run Code Online (Sandbox Code Playgroud)
Hit*_*ahu 10
使用文件扩展名来处理WorkSheetType
String inputFilename = new File(path).getName();
switch (inputFilename.substring(inputFilename.lastIndexOf(".") + 1,
inputFilename.length())) {
case "xls":
return readXLS(path);
case "xlsx":
return readXLSX(path);
default:
Log.e(TAG, "No XLS file chosen");
return "Please select valid \"Excel\" File\"";
}
Run Code Online (Sandbox Code Playgroud)
对于XLSX文件:使用 XSSFWorkbook & XSSFSheet
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File(path)));
XSSFSheet sheet = workbook.getSheetAt(0);
Run Code Online (Sandbox Code Playgroud)
对于XLS文件:使用 HSSFWorkbook & HSSFSheet
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(path)));
HSSFSheet sheet = workbook.getSheetAt(0);
Run Code Online (Sandbox Code Playgroud)
小智 5
当您通过LibreOffice创建XLS/XLSX文件时,可能会发生这种情况.显然,转换中丢失了某些内容,该文件与Microsoft Office中生成的电子表格不同.我有同样的错误,我的解决方案是将我在LibreOffice Calc中完成的所有工作复制到MS Excel电子表格,然后保存一个新文件.
小智 0
检查 EXCEL 格式 .... 首先,我使用 poi 创建了一个示例 excel,我第一次尝试更改了列,它给出了相同的错误,但经过几次尝试后,它成功读取。我想知道为什么它第一次运行不起作用:( 但如果您有正确的库,请检查正确的 Excel 格式