我遇到一个问题,csv文件内容如下:
car1,18499,Active,PreActive,
car2,Active,PreActive,
car3,21138,Active,40712,PreActive,
car4,Active,PreActive,
我想在jsp中显示
car1 car2 car3 car4
18499 21138
40712
我遇到一个问题,csv文件内容如下:
car1,18499,Active,PreActive,
car2,Active,PreActive,
car3,21138,Active,40712,PreActive,
car4,Active,PreActive,
我想在jsp中显示
car1 car2 car3 car4
18499 21138
40712
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
你可以使用Apache Commons CSV库来处理CSV文件。以下是一个简单的示例:
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileReader;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception {
String csvFilePath = "/path/to/your/csv/file.csv";
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
// 获取CSV文件的行数和列数
int rowCount = 0;
List<CSVRecord> records = null;
try (FileReader fileReader = new FileReader(csvFilePath)) {
CSVParser parser = CSVFormat.DEFAULT.parse(fileReader);
records = parser.getRecords();
rowCount = records.size();
}
// 创建一个CSV格式的字符串
StringBuilder sb = new StringBuilder("car1,18499,Active,PreActive,");
for (int i = 0; i < rowCount; i++) {
sb.append(records.get(i).get(0)).append(",").append(records.get(i).get(1)).append(",");
}
sb.deleteCharAt(sb.length() - 1);
// 将字符串写入到响应中
request.setAttribute("result", sb.toString());
}
}
在这个例子中,我们首先获取了CSV文件的行数和列数,然后创建了一个StringBuilder对象,用于构建我们需要的输出字符串。然后,我们遍历CSV记录,并将每条记录的第一列添加到StringBuilder对象中。最后,我们将StringBuilder对象的内容写入到响应中。
注意:你需要根据你的实际情况修改这个例子中的路径和字段名称。