将包含 \n 和 \t 的 Json 响应存储在 Java 的二维数组中,并使用 POI 写入 Excel
Storing a Json response containing \n and \t in a 2 dimentional array in Java and write to Excel using POI
我收到一个 JSON 响应作为一个单独的字符串,如下所示。这个字符串应该被提取到一个二维数组中。
- 无论
\t
出现在 response
中的什么地方,它都必须位于当前行的新单元格中
- 无论
\n
出现在哪里,它都必须增加行号并写入新行
- 使用 Apache POI 在 excel 中写入数组列表。
响应:
"type": "TABLE",
"data": "Col_1\tCol_2\tCol_3\nName_1\tPlace_1\tAnimal_1\nName_2\tPlace_2\tAnimal_2\nName_3\tPlace_3\tAnimal_3\n"
您需要使用 \n
拆分您的响应,它成为 excel 中的行,然后使用 \t
从行拆分成为列值。
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ApachePOIExcelWrite {
public static void main(String[] args) throws IOException {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Java Books");
String response =
"Col_1\tCol_2\tCol_3\nName_1\tPlace_1\tAnimal_1\nName_2\tPlace_2\tAnimal_2\nName_3\tPlace_3\tAnimal_3\n";
int rowCount = 0;
String rows[] = response.split("\n");
for (String rowInfo : rows) {
Row row = sheet.createRow(++rowCount);
int columnCount = 0;
String[] colInfo = rowInfo.split("\t");
for (String column : colInfo) {
Cell cell = row.createCell(++columnCount);
cell.setCellValue(column);
}
}
try (FileOutputStream outputStream = new FileOutputStream("JavaBooks.xlsx")) {
workbook.write(outputStream);
}
}
}
输出:
我收到一个 JSON 响应作为一个单独的字符串,如下所示。这个字符串应该被提取到一个二维数组中。
- 无论
\t
出现在response
中的什么地方,它都必须位于当前行的新单元格中 - 无论
\n
出现在哪里,它都必须增加行号并写入新行 - 使用 Apache POI 在 excel 中写入数组列表。
响应:
"type": "TABLE",
"data": "Col_1\tCol_2\tCol_3\nName_1\tPlace_1\tAnimal_1\nName_2\tPlace_2\tAnimal_2\nName_3\tPlace_3\tAnimal_3\n"
您需要使用 \n
拆分您的响应,它成为 excel 中的行,然后使用 \t
从行拆分成为列值。
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ApachePOIExcelWrite {
public static void main(String[] args) throws IOException {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Java Books");
String response =
"Col_1\tCol_2\tCol_3\nName_1\tPlace_1\tAnimal_1\nName_2\tPlace_2\tAnimal_2\nName_3\tPlace_3\tAnimal_3\n";
int rowCount = 0;
String rows[] = response.split("\n");
for (String rowInfo : rows) {
Row row = sheet.createRow(++rowCount);
int columnCount = 0;
String[] colInfo = rowInfo.split("\t");
for (String column : colInfo) {
Cell cell = row.createCell(++columnCount);
cell.setCellValue(column);
}
}
try (FileOutputStream outputStream = new FileOutputStream("JavaBooks.xlsx")) {
workbook.write(outputStream);
}
}
}
输出: