import java.io.File;import java.io.FileInputStream;import java.io.IOException;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.ss.usermodel.WorkbookFactory;public class ExcelReader { public static void main(String[] args) { try { FileInputStream file = new FileInputStream(new File("example.xlsx")); Workbook workbook = WorkbookFactory.create(file); Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { System.out.print(cell.toString() + "\t"); } System.out.println(); } file.close(); } catch (IOException e) { e.printStackTrace(); } }}
时间: 2023-04-12 16:01:51 浏览: 106
这是一个 Java 读取 Excel 文件的示例代码,通过 Apache POI 库实现。它打开名为 "example.xlsx" 的 Excel 文件,读取第一个工作表的所有行和列,并将单元格的内容打印到控制台上。
相关问题
import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; 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.xssf.usermodel.XSSFWorkbook; public class XlsxToCsvConverter { public static void main(String[] args) { try { // 读取 xlsx 文件 FileInputStream file = new FileInputStream(new File("input.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(file); Sheet sheet = workbook.getSheetAt(0); // 创建 csv 文件 FileWriter csvWriter = new FileWriter("output.csv"); // 遍历 xlsx 文件的每一行 for (Row row : sheet) { // 遍历每一行的每一列 for (Cell cell : row) { // 将单元格的值写入 csv 文件 csvWriter.append(cell.getStringCellValue()); csvWriter.append(","); } csvWriter.append("\n"); } // 关闭文件 csvWriter.flush(); csvWriter.close(); workbook.close(); file.close(); } catch (IOException e) { e.printStackTrace(); } } }需要的pom
文件中需要添加以下依赖:
```
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
这个依赖包含了操作 Excel 文件的相关类。
java 使用POI 将.xls文件转换为html 时间格式
在 Java 中,你可以使用 Apache POI 库来读取和写入 Excel 文件,并且可以使用 JSoup 库将 Excel 文件转换为 HTML 格式。在 Excel 中,时间被存储为日期时间的数字表示,因此你需要将其转换为字符串格式并在 HTML 中进行呈现。下面是一个示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
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.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class ExcelToHtml {
public static void main(String[] args) throws IOException {
// 读取Excel文件
FileInputStream inputStream = new FileInputStream(new File("input.xls"));
Workbook workbook = new HSSFWorkbook(inputStream);
// 转换为HTML
Document html = Jsoup.parse("<table></table>");
Element table = html.select("table").first();
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
Element tr = table.appendElement("tr");
for (Cell cell : row) {
Element td = tr.appendElement("td");
switch (cell.getCellType()) {
case NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
String dateString = String.format("%tF %<tT", date);
td.text(dateString);
} else {
double number = cell.getNumericCellValue();
td.text(String.valueOf(number));
}
break;
case STRING:
td.text(cell.getStringCellValue());
break;
case BOOLEAN:
td.text(String.valueOf(cell.getBooleanCellValue()));
break;
default:
td.text("");
}
}
}
// 写入HTML文件
FileOutputStream outputStream = new FileOutputStream(new File("output.html"));
outputStream.write(html.outerHtml().getBytes());
outputStream.close();
// 关闭资源
workbook.close();
inputStream.close();
}
}
```
在上面的代码中,我们使用 HSSFDateUtil 类中的 isCellDateFormatted 方法来判断单元格是否包含日期时间,并将其转换为字符串格式。如果单元格包含日期时间,我们使用 String 类中的 format 方法将其格式化为“年-月-日 时:分:秒”的字符串格式。最后,我们使用 FileOutputStream 类将 HTML 写入文件中。
请注意,上面的代码仅适用于.xls格式的Excel文件,如果你要处理.xlsx格式的文件,需要使用 XSSFWorkbook 类代替 HSSFWorkbook 类。