import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelRead {
// 判断excel版本
static Workbook openWorkbook(InputStream in, String filename,
String fileFileName) throws IOException {
Workbook wb = null;
if (fileFileName.endsWith(".xlsx")) {
wb = new XSSFWorkbook(in);// Excel 2007
} else {
wb = (Workbook) new HSSFWorkbook(in);// Excel 2003
}
return wb;
}
public static List<String[]> getExcelData(String fileName,
String fileFileName) throws Exception {
InputStream in = new FileInputStream(fileName); // 创建输入流
Workbook wb = openWorkbook(in, fileName, fileFileName);// 获取Excel文件对象
Sheet sheet = wb.getSheetAt(0);// 获取文件的指定工作表m 默认的第一个
List<String[]> list = new ArrayList<String[]>();
Row row = null;
Cell cell = null;
int totalRows = sheet.getPhysicalNumberOfRows(); // 总行数
int totalCells = sheet.getRow(0).getPhysicalNumberOfCells();// 总列数
for (int i = 0; i < totalRows; i++) {
// 创建一个数组 用来存储每一列的值
String[] str = new String[totalRows];
row = sheet.getRow(i);
for (int j = 0; j < totalCells; j++) {
cell = (Cell) sheet.getCellComment(j, i);
cell = row.getCell(j);
System.out.println(j + "DDDDDDDDDD");
// str[j] = String.valueOf(cell);
}
// 把刚获取的列存入list
list.add(str);
}
for (int r = 0; r < totalRows; r++) {
row = sheet.getRow(r);
System.out.print("第" + r + "行");
for (int c = 0; c < totalCells; c++) {
cell = row.getCell(c);
String cellValue = "";
if (null != cell) {
// 以下是判断数据的类型
switch (cell.getCellType()) {
case XSSFCell.CELL_TYPE_NUMERIC: // 数字
cellValue = cell.getNumericCellValue() + "";
// 时间格式
// if(HSSFDateUtil.isCellDateFormatted(cell)){
// Date dd = cell.getDateCellValue();
// DateFormat df = new
// SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// cellValue = df.format(dd);
// }
break;
case XSSFCell.CELL_TYPE_STRING: // 字符串
cellValue = cell.getStringCellValue();
break;
case XSSFCell.CELL_TYPE_BOOLEAN: // Boolean
cellValue = cell.getBooleanCellValue() + "";
break;
case XSSFCell.CELL_TYPE_FORMULA: // 公式
cellValue = cell.getCellFormula() + "";
break;
case XSSFCell.CELL_TYPE_BLANK: // 空值
cellValue = "";
break;
case XSSFCell.CELL_TYPE_ERROR: // 故障
cellValue = "非法字符";
break;
default:
cellValue = "未知类型";
break;
}
System.out.print(" " + cellValue + "\t");
}
}
System.out.println();
}
// 返回值集合
return list;
}
public static void main(String[] args) throws Exception {
String fileName = "C:/Users/liming.zhu/Desktop/工号.xlsx";//C:/Users/liming.zhu/Desktop/工号20150416.xlsx
ExcelRead upload = new ExcelRead();
upload.getExcelData(fileName, ".xlsx");
}
}
相关推荐
2. **解析Excel**:使用POI API打开上传的文件,根据文件扩展名选择合适的Workbook类型。对于.xls文件,使用HSSFWorkbook;对于.xlsx文件,使用XSSFWorkbook。 3. **遍历数据**:读取Workbook中的每个Sheet,再遍历...
在Java编程中,"java xls导入"涉及到的是处理Excel数据的一种常见技术,主要用来读取、解析和操作.xls格式的文件。XLS是Microsoft Excel早期版本(97-2003)使用的文件格式,用于存储工作簿数据。在本文中,我们将...
例如,MySQL有LOAD DATA INFILE命令,可以配合使用程序(如Python的pandas库或Java的Apache POI库)将XLS文件的数据批量导入到表中。 其次,**xls文件的导出**是相反的过程,即从数据库中提取数据并保存为XLS文件。...
这个过程涉及到多个关键知识点,包括Java的文件操作、数据解析、数据库连接以及SQL操作。 首先,Java的文件操作是基础,我们需要读取Excel文件。在Java中,可以使用Apache POI库来处理Microsoft Office格式的文件,...
1. **读取Excel文件**:Spire.XLS能够读取不同版本的Excel文件,包括xls和xlsx格式,解析其中的数据、样式、图表等信息。 2. **转换为PDF**:在读取Excel文件后,它可以将整个工作簿或者单个工作表转换为高质量的...
在这个特定的接口中,开发者首先会使用Java Excel API或JDBF库来读取.xls或.dbf文件,解析出其中的数据。然后,通过JDBC驱动,将这些数据转化为适合Oracle数据库的格式,并使用SQL语句将它们批量插入到目标表中。...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel(.xls和.xlsx)、Word(.doc和.docx)等。在Java环境中,Apache POI库提供了丰富的API,使得开发者能够方便地读取、写入以及操作这些...
在这个“ssh处理xls”的项目中,我们主要关注的是如何在SSH框架下处理Excel文件,尤其是读取和写入XLS格式的数据。 首先,Spring作为应用的依赖注入容器,负责管理Bean和协调各种服务。在处理Excel时,Spring可以...
OOXML是Microsoft推出的一种新的文件格式标准,与老版的二进制格式(.xls)相比,它更易于解析和编程。 3. **poi-ooxml-schemas-3.9.jar**: 包含了OOXML的XML模式定义,使得Java程序可以理解和操作OOXML文件的结构...
Tika是一款强大的开源Java库,专门用于从各种文件格式中提取元数据和文本内容。它在信息技术领域,尤其是文本处理和信息检索中扮演着重要角色。Tika利用Apache的MIME类型识别系统来识别文件类型,并且能够处理大量的...
2. **读取Excel文件**: 使用Apache POI,我们可以创建`HSSFWorkbook`(针对.xls文件)或`XSSFWorkbook`(针对.xlsx文件)对象来读取Excel文件。你需要指定文件路径,然后打开工作簿,接着获取工作表,最后遍历行和...
通过将`String.xml`文件转换为Excel,开发者可以在更直观的界面中编辑多语言文本,还可以利用Excel的公式和功能进行批量处理。 一些工具如`Android String CSV/Excel Exporter`、`Android String Resource Editor`...
`.xls`文件通常需要解析Biff记录,而`.xlsx`文件则是一个包含XML文件的ZIP归档。 3. **数据解析**:对于`.xls`文件,解析Biff记录后,可以找到工作表、单元格数据等信息。对于`.xlsx`文件,解压后找到`/xl/...
Apache POI 是一个广泛使用的 Java 库,它允许程序员创建、修改和显示 Microsoft Office 格式的文件,包括 Excel(XLS 和 XLSX)、Word(DOC 和 DOCX)以及 PowerPoint(PPT 和 PPTX)。在 Excel 处理方面,POI ...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel(.xls 和 .xlsx)、Word(.doc 和 .docx)等。在Java环境中,Apache POI 提供了API,使得开发者能够方便地读取、写入以及操作这些文件...
为了快速导出大量数据,Java通常会使用Apache POI库,它允许直接操作Excel文件格式(如`.xlsx`的OOXML和`.xls`的老式BIFF格式)。通过批处理写入操作,避免频繁的磁盘IO操作,可以显著提高性能。例如,使用`...
Apache POI是一个流行的开源项目,它允许开发者使用Java来处理Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。 1. **POI库介绍**: Apache POI提供了HSSF和XSSF两个API,分别用于处理老版本的.BIFF8格式...
这可以通过迭代工作表、行和单元格来完成,然后解析单元格内容并映射到相应的Java对象字段。 - 使用 `Workbook.getNumberOfSheets()` 获取工作簿中的工作表数量,再用 `Workbook.getSheetAt(int index)` 获取指定...
此外,它也常用于数据导入,允许用户上传Excel文件以批量插入或更新数据库中的数据。 总的来说,理解并掌握如何在Java中导出Excel文件是一项实用的技能,尤其是在需要与用户交互并处理大量数据的业务场景下。通过...
Java编程语言提供了多种库来处理不同的文件类型,如Word、Excel和PowerPoint,...通过它们,开发者可以在程序中轻松读取、解析和操作这些文件,实现自动化办公任务、数据分析或其他需要处理这些格式文件的应用场景。