java如何向csv文件中写数字格式的文本,

flyli815 2011-08-17 11:18:03
package java_csv;
import java.io.FileWriter;
import java.util.HashMap;
import org.supercsv.cellprocessor.ParseBigDecimal;
import org.supercsv.cellprocessor.constraint.StrMinMax;
import org.supercsv.cellprocessor.constraint.Unique;
import org.supercsv.cellprocessor.ift.CellProcessor;
import org.supercsv.io.CsvMapWriter;
import org.supercsv.io.ICsvMapWriter;
import org.supercsv.prefs.CsvPreference;

public class CSVWriteExample {
public static void main(String[] args) throws Exception{
final CellProcessor[] processors = new CellProcessor[] {
new Unique(new StrMinMax(1, 20)),
new ParseBigDecimal()
};
ICsvMapWriter writer = new CsvMapWriter(new FileWriter("e:/person.csv"), CsvPreference.EXCEL_PREFERENCE);
try {
final String[] header = new String[] { "name","total" };
// set up some data to write
final HashMap<String, Object> data1 = new HashMap<String, Object>();
data1.put(header[0], "Raj");
data1.put(header[1], "1301699234566666");
// the actual writing
writer.writeHeader(header);
writer.write(data1, header);
} finally {
writer.close();
}
}
}

这样导出的csv文件用excel打开会显示:
name total
Raj 1.3017E+15
而且这样显示的话,也会把最后一位的数字丢失,变成了0;失去了数据的完整性了。

但是我这不想这样的结果,我想要的结果是:
name total
Raj 1301699234566666
直接显示原来的数字文本形式。

请问我该怎么解决呢,
我现在在程序中使用的CsvMapWriter向外输出,用CellProcessor怎么实现呢。
...全文
1363 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
softroad 2011-08-17
  • 打赏
  • 举报
回复
有木有设定格式?
zqfddqr 2011-08-17
  • 打赏
  • 举报
回复
csv没有格式的显示成这样是excel的问题
如果只考虑数据就不用excel了

如果非要用这个excel建议换一个方法
softroad 2011-08-17
  • 打赏
  • 举报
回复
木有研究过,lz看看相关api吧
flyli815 2011-08-17
  • 打赏
  • 举报
回复
我就是想在csv文件的相应列中把1301699234566666以文本形式显示出来。
我不知道怎么设置,csv列的数据类型格式,该怎么设置呢?请帮忙。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧