java里的XSSFWorkbook是什么包下的,如何用pom文件引入
时间: 2024-03-12 16:44:02 浏览: 29
`XSSFWorkbook` 是 Apache POI 中用于操作 Excel 2007 及以上版本(.xlsx 文件)的类。`XSSFWorkbook` 类位于 `org.apache.poi.xssf.usermodel` 包下。
要在项目中使用 `XSSFWorkbook`,您需要在 Maven 的 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
这将在您的项目中引入 Apache POI 的 Excel 模块,其中包括 `XSSFWorkbook` 类。请确保将版本号替换为您想要使用的 Apache POI 版本。
相关问题
java xlsx文件转换为csv文件的代码实现
### 回答1:
可以使用Java的Apache POI库来实现:
InputStream inp = new FileInputStream("workbook.xlsx");
XSSFWorkbook wb = new XSSFWorkbook(inp);
XSSFSheet sheet = wb.getSheetAt(0);
FileOutputStream fileOut = new FileOutputStream("workbook.csv");
Writer w = new OutputStreamWriter(fileOut, "UTF-8");
CSVPrinter csvFilePrinter = new CSVPrinter(w, CSVFormat.DEFAULT);
for (int i = 0; i < sheet.getLastRowNum() + 1; i++) {
XSSFRow row = sheet.getRow(i);
List<String> data = new ArrayList<>();
for (int j = 0; j < row.getLastCellNum(); j++) {
XSSFCell cell = row.getCell(j);
data.add(cell.toString());
}
csvFilePrinter.printRecord(data);
}
csvFilePrinter.close();
### 回答2:
要将Java中的xlsx文件转换为csv文件,可以使用Apache POI库进行操作。以下是代码实现的步骤:
1. 引入Apache POI库的依赖。在项目的pom.xml文件中添加以下依赖项:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
```
2. 创建一个方法来执行转换。在方法中,首先创建一个表示xlsx文件的Workbook对象:
```java
import org.apache.poi.ss.usermodel.*;
public void convertXlsxToCsv(String xlsxFilePath, String csvFilePath) {
try {
Workbook workbook = WorkbookFactory.create(new File(xlsxFilePath));
} catch (IOException e) {
e.printStackTrace();
}
}
```
3. 获取xlsx文件中的第一个工作表,并遍历所有的行和列。在每一行中,获取单元格的值,将其写入csv文件:
```java
public void convertXlsxToCsv(String xlsxFilePath, String csvFilePath) {
try {
Workbook workbook = WorkbookFactory.create(new File(xlsxFilePath));
Sheet sheet = workbook.getSheetAt(0);
FileOutputStream fileOutputStream = new FileOutputStream(csvFilePath);
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8));
for (Row row : sheet) {
for (Cell cell : row) {
String cellValue = cell.getStringCellValue();
bufferedWriter.write(cellValue);
bufferedWriter.write(",");
}
bufferedWriter.newLine();
}
bufferedWriter.close();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
```
4. 调用convertXlsxToCsv方法,并传入要转换的xlsx文件的路径和要保存的csv文件的路径:
```java
String xlsxFilePath = "path/to/input.xlsx";
String csvFilePath = "path/to/output.csv";
convertXlsxToCsv(xlsxFilePath, csvFilePath);
```
通过上述代码,就可以将xlsx文件成功转换为csv文件。
### 回答3:
要将Java中的xlsx文件转换为csv文件,可以使用Apache POI库来实现。
首先,需要添加以下依赖项到项目的pom.xml文件中:
```xml
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
```
然后,使用下面的代码实现xlsx转csv的功能:
```java
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
public class XlsxToCsvConverter {
public static void main(String[] args) {
String xlsxFilePath = "path/to/input.xlsx";
String csvFilePath = "path/to/output.csv";
try {
// 加载xlsx文件
FileInputStream xlsxFile = new FileInputStream(xlsxFilePath);
Workbook workbook = new XSSFWorkbook(xlsxFile);
// 创建csv文件
FileWriter csvWriter = new FileWriter(csvFilePath);
// 获取第一个工作表
Sheet sheet = workbook.getSheetAt(0);
// 遍历工作表的每一行,并将数据写入csv文件
for (Row row : sheet) {
for (Cell cell : row) {
csvWriter.write(cell.toString() + ",");
}
csvWriter.write("\n");
}
// 关闭文件流
xlsxFile.close();
csvWriter.close();
System.out.println("xlsx文件转换为csv文件成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码中的`xlsxFilePath`和`csvFilePath`分别表示输入的xlsx文件路径和输出的csv文件路径。请确保输入的xlsx文件存在,并且输出的csv文件是一个有效的路径。
运行该代码后,将会将xlsx文件转换为csv文件,并输出成功的提示信息。
希望以上代码能对您有所帮助!
Java代码实现pdf文件中的表格以及内容转成excel文件输出
可以使用Apache PDFBox和Apache POI这两个Java库来实现将PDF文件中的表格以及内容转成Excel文件输出的功能。具体实现步骤如下:
1. 引入依赖
在项目的pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.23</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
```
2. 加载PDF文件
使用PDFBox库中的PDFTextStripper类将PDF文件中的文本内容提取出来,然后再使用PDFBox库中的PDFTableStripper类将PDF文件中的表格内容提取出来。具体代码如下:
```
PDDocument document = PDDocument.load(new File("test.pdf"));
PDFTextStripper textStripper = new PDFTextStripper();
String text = textStripper.getText(document);
PDFTableStripper tableStripper = new PDFTableStripper();
tableStripper.setSortByPosition(true);
tableStripper.setStartPage(0);
tableStripper.setEndPage(document.getNumberOfPages());
List<List<Rectangle>> rows = tableStripper.getRows(document.getPage(0));
```
3. 将表格内容转成二维数组
根据表格的行列信息,将表格内容转成二维数组。具体代码如下:
```
List<List<String>> table = new ArrayList<>();
for (List<Rectangle> row : rows) {
List<String> rowData = new ArrayList<>();
for (Rectangle cell : row) {
int x = (int) cell.getX();
int y = (int) cell.getY();
int width = (int) cell.getWidth();
int height = (int) cell.getHeight();
String cellText = text.substring(text.indexOf("(" + x + "," + y + ")"), text.indexOf("(" + (x + width) + "," + (y + height) + ")"));
rowData.add(cellText.trim());
}
table.add(rowData);
}
```
4. 将表格内容写入Excel文件
使用POI库中的Workbook和Sheet类创建Excel文件和工作表,然后将表格内容写入工作表中。具体代码如下:
```
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
for (int i = 0; i < table.size(); i++) {
Row row = sheet.createRow(i);
List<String> rowData = table.get(i);
for (int j = 0; j < rowData.size(); j++) {
Cell cell = row.createCell(j);
cell.setCellValue(rowData.get(j));
}
}
FileOutputStream outputStream = new FileOutputStream("test.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
```
完整代码如下:
```
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.util.Rectangle;
import org.apache.pdfbox.util.Splitter;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.interactive.form.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
public class PdfToExcel {
public static void main(String[] args) throws Exception {
PDDocument document = PDDocument.load(new File("test.pdf"));
PDFTextStripper textStripper = new PDFTextStripper();
String text = textStripper.getText(document);
PDFTableStripper tableStripper = new PDFTableStripper();
tableStripper.setSortByPosition(true);
tableStripper.setStartPage(0);
tableStripper.setEndPage(document.getNumberOfPages());
List<List<Rectangle>> rows = tableStripper.getRows(document.getPage(0));
List<List<String>> table = new ArrayList<>();
for (List<Rectangle> row : rows) {
List<String> rowData = new ArrayList<>();
for (Rectangle cell : row) {
int x = (int) cell.getX();
int y = (int) cell.getY();
int width = (int) cell.getWidth();
int height = (int) cell.getHeight();
String cellText = text.substring(text.indexOf("(" + x + "," + y + ")"), text.indexOf("(" + (x + width) + "," + (y + height) + ")"));
rowData.add(cellText.trim());
}
table.add(rowData);
}
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet();
for (int i = 0; i < table.size(); i++) {
Row row = sheet.createRow(i);
List<String> rowData = table.get(i);
for (int j = 0; j < rowData.size(); j++) {
Cell cell = row.createCell(j);
cell.setCellValue(rowData.get(j));
}
}
FileOutputStream outputStream = new FileOutputStream("test.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
}
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)