java中生成了一个csv文件,通过excel打开csv,数据没有分列,如何在就java语言里实现。
ps:csv中数据以“,”作为分割,不要在excel里面进行分列的操作,我需要生成的csv打开后自动分好列。...
ps:csv中数据以“,”作为分割,不要在excel里面进行分列的操作,我需要生成的csv打开后自动分好列。
展开
3个回答
展开全部
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
/**
* CSV文件示例程序
* @version 1.0 2014/10/30
*/
public class CsvFileCreator {
public static void main(String[] args) {
CsvFileCreator example = new CsvFileCreator();
example.createCsv();
}
/**
* 创建CSV文件
*/
public void createCsv(){
//换行符
final String NEW_LINE = "\n";
//文件名称
String fileName = "D:\\MyCsv.csv";
try {
//标题头
String title = "序号,姓名,年龄,身高";
StringBuilder csvStr = new StringBuilder();
csvStr.append(title).append(NEW_LINE);
//数据行
for(String csvData : getCsvRows()){
csvStr.append(csvData).append(NEW_LINE);
}
//写文件
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(fileName)), "GB2312"));
writer.write(csvStr.toString());
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取CSV行数据,各个值之间使用英文逗号分隔
* @return List<String>
*/
private List<String> getCsvRows(){
List<String> result = new ArrayList<String>();
result.add("1,Mr Zhang,20,170");
result.add("2,Mrs Wang,18,175");
result.add("3,Li,30,178");
result.add("4,Zhao,19,175");
result.add("5,Ms Feng,18,165");
return result;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询