我试图写入Excel文件,但我一直收到错误:
Exception in thread “main” org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
任何人都可以帮我识别它是哪个文件?
附:我正在使用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); } }
解决方法
使用文件扩展名来处理WorkSheet类型
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\""; }
对于XLSX文件:使用XSSFWorkbook& XSSFSheet
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File(path))); XSSFSheet sheet = workbook.getSheetAt(0);
对于XLS文件:使用hssfWorkbook& hssfSheet
hssfWorkbook workbook = new hssfWorkbook(new FileInputStream(new File(path))); hssfSheet sheet = workbook.getSheetAt(0);
原文地址:https://www.jb51.cc/java/125684.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。