如何从XLS(Excel)文件中读取数据[Java,Android]
我已经搜索了stackoverflow,但没有找到明确的答案。如何将XLS文件特定行和列中的数据读取到Android应用程序?如何读取XLS文件?我不想将其转换为CSV,因为我在尝试转换时会出错如何从XLS(Excel)文件中读取数据[Java,Android],java,android,excel,Java,Android,Excel,我已经搜索了stackoverflow,但没有找到明确的答案。如何将XLS文件特定行和列中的数据读取到Android应用程序?如何读取XLS文件?我不想将其转换为CSV,因为我在尝试转换时会出错 也许我可以使用它,但我甚至不知道如何将它导入到我的项目中。请提供帮助。您好,您只需要包含一个外部jxl jar,您可以阅读相同的教程,这将帮助您了解读取excel文件的过程。。为了您的参考,我粘贴了一些参考代码,它读取excel的第一页并创建一个结果集 public List<String
也许我可以使用它,但我甚至不知道如何将它导入到我的项目中。请提供帮助。您好,您只需要包含一个外部jxl jar,您可以阅读相同的教程,这将帮助您了解读取excel文件的过程。。为了您的参考,我粘贴了一些参考代码,它读取excel的第一页并创建一个结果集
public List<String> read(String key) throws IOException {
List<String> resultSet = new ArrayList<String>();
File inputWorkbook = new File(inputFile);
if(inputWorkbook.exists()){
Workbook w;
try {
w = Workbook.getWorkbook(inputWorkbook);
// Get the first sheet
Sheet sheet = w.getSheet(0);
// Loop over column and lines
for (int j = 0; j < sheet.getRows(); j++) {
Cell cell = sheet.getCell(0, j);
if(cell.getContents().equalsIgnoreCase(key)){
for (int i = 0; i < sheet.getColumns(); i++) {
Cell cel = sheet.getCell(i, j);
resultSet.add(cel.getContents());
}
}
continue;
}
} catch (BiffException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
else
{
resultSet.add("File not found..!");
}
if(resultSet.size()==0){
resultSet.add("Data not found..!");
}
return resultSet;
}
公共列表读取(字符串键)引发IOException{
List resultSet=new ArrayList();
文件输入工作簿=新文件(输入文件);
如果(inputWorkbook.exists()){
工作手册w;
试一试{
w=Workbook.getWorkbook(inputWorkbook);
//拿到第一张
图纸=w.getSheet(0);
//在列和行上循环
对于(int j=0;j
专用无效打印程序(单元格str){
最终细胞串=str;
if(output.length()>8000){
CharSequence fullOutput=output.getText();
fullOutput=fullOutput.subSequence(5000,fullOutput.length());
setText(fullOutput);
}
output.append(字符串+“\n”);
}
public void ReadXLSX(文件路径){
试一试{
FileInputStream fis=新的FileInputStream(路径);
XSSFWorkbook myWorkBook=新XSSFWorkbook(fis);
XSSFSheet mySheet=myWorkBook.getSheetAt(0);
迭代器rowIterator=mySheet.Iterator();
while(roweiterator.hasNext()){
行=行迭代器。下一步();
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
开关(cell.getCellType()){
case Cell.Cell\u类型\u字符串:
打破
case Cell.Cell\u类型\u数值:
打破
case Cell.Cell\u类型\u布尔值:
打破
违约:
}
打印机(电池);
}
}
fis.close();
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
问题是我已经导入了该文件,但我发现一个错误,即找不到类源代码…我不明白为什么该问题被否决。您能分享您得到的确切错误吗?还有一个建议,无论何时提出问题,都要非常准确地提到你的问题(如果你认为有必要的话,要有错误和/或代码)。由于Stackoverflow上的其他朋友对所有新问题进行了审查,如果有人发现您的问题不正确/不完整,他们将投票否决。但是,让我们不要担心这一点,尝试解决您的问题,因为这更重要。我刚刚将它复制到LIBS文件夹中,它正在工作(以前我导入了它,但它不工作)。我需要打开文件夹B中的文件A(B在包主文件夹中)。这不起作用:workBook=workBook.getWorkbook(新文件(“/B/A.xls”);知道吗?有什么错误吗?另外,文件的确切位置和源代码文件的位置是否在同一文件夹/包中?文件的确切位置和源代码文件的位置是否在同一文件夹/包中?嗨!请指定您正在使用的库(名称和版本)(我想是iText),并对我正在使用的代码库ApachePOI“aa-poi-3.10-min-0.1.5.jar”和“aa-poi-ooxml-schemas-3.10-reduced-more-0.1.5.jar”添加一些描述,导入的库是import org.apache.poi.ss.usermodel.Cell;导入org.apache.poi.ss.usermodel.Row;导入org.apache.poi.xssf.usermodel.xssfheet;导入org.apache.poi.xssf.usermodel.xssf工作簿;
private void printlnToUser(Cell str) {
final Cell string = str;
if (output.length() > 8000) {
CharSequence fullOutput = output.getText();
fullOutput = fullOutput.subSequence(5000, fullOutput.length());
output.setText(fullOutput);
}
output.append(string + "\n");
}
public void ReadXLSX(File path) {
try {
FileInputStream fis = new FileInputStream(path);
XSSFWorkbook myWorkBook = new XSSFWorkbook(fis);
XSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator<Row> rowIterator = mySheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
break;
case Cell.CELL_TYPE_NUMERIC:
break;
case Cell.CELL_TYPE_BOOLEAN:
break;
default:
}
printlnToUser(cell);
}
}
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}