java excel 导出 行转列 实例代码
时间: 2023-08-28 21:07:50 浏览: 85
java实现的导出Excel工具类实例
您好,以下是一个简单的 Java 导出 Excel 的行转列实例代码:
```java
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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 ExcelExport {
public static void main(String[] args) {
// 创建一个工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建一个工作表
XSSFSheet sheet = workbook.createSheet("Sheet1");
// 创建数据
List<String> list = new ArrayList<String>();
list.add("姓名");
list.add("年龄");
list.add("性别");
list.add("国籍");
List<String> row1 = new ArrayList<String>();
row1.add("张三");
row1.add("28");
row1.add("男");
row1.add("中国");
List<String> row2 = new ArrayList<String>();
row2.add("李四");
row2.add("30");
row2.add("女");
row2.add("美国");
List<List<String>> data = new ArrayList<List<String>>();
data.add(list);
data.add(row1);
data.add(row2);
// 行转列
List<List<String>> transposedData = transpose(data);
// 写入数据
for (int i = 0; i < transposedData.size(); i++) {
Row row = sheet.createRow(i);
List<String> rowData = transposedData.get(i);
for (int j = 0; j < rowData.size(); j++) {
Cell cell = row.createCell(j);
cell.setCellValue(rowData.get(j));
}
}
// 保存文件
try {
FileOutputStream outputStream = new FileOutputStream("data.xlsx");
workbook.write(outputStream);
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 行转列
public static List<List<String>> transpose(List<List<String>> data) {
List<List<String>> transposedData = new ArrayList<List<String>>();
for (int i = 0; i < data.get(0).size(); i++) {
List<String> column = new ArrayList<String>();
for (int j = 0; j < data.size(); j++) {
column.add(data.get(j).get(i));
}
transposedData.add(column);
}
return transposedData;
}
}
```
希望这个代码对您有所帮助。
阅读全文