Java导出csv数字如何不以科学计数显示,不能改变原来的值,如不能在前面加'或者=""

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java导出csv数字如何不以科学计数显示,不能改变原来的值,如不能在前面加'或者=""相关的知识,希望对你有一定的参考价值。

StringBuffer sbf = new StringBuffer();
sbf.append("Shipment Inventory Report");
sbf.append('\n');
sbf.append('\n');
sbf.append("UserName, Location, Printing date/Time, DateFrom, DateTo");
sbf.append('\n');
sbf.append(getCsvCommaString(aUser.getUserID()));
sbf.append(getCsvCommaString(psform.getBranch()));
sbf.append(getCsvCommaString(new HSSFRichTextString(printDate)));
sbf.append(getCsvCommaString(new HSSFRichTextString(psform.getDateFrom())));
sbf.append(getCsvCommaString(new HSSFRichTextString(psform.getDateTo())));
sbf.append('\n');
sbf.append('\n');

sbf.append("Shipment No, STT No, WIN Event, DateTime, WOU Envent, DateTime");
sbf.append('\n');

for(int i=0;i<list.size();i++)

PrintStatisticsForm psrform = list.get(i);
sbf.append(getCsvCommaString(psrform.getHawb()));
sbf.append(getCsvCommaString(psrform.getStt()));
sbf.append(getCsvCommaString(new HSSFRichTextString(psrform.getWinevent())));
sbf.append(getCsvCommaString(new HSSFRichTextString(psrform.getWindatetime())));
sbf.append(getCsvCommaString(new HSSFRichTextString(psrform.getWouevent())));
sbf.append(getCsvCommaString(new HSSFRichTextString(psrform.getWoudatetime())));
sbf.append('\n');

sbf.append('\n');
sbf.append('\n');
sbf.append('\n');
//sbf.append(" No of Shipments, Total Pcs (Hawb), Total Pcs (WareHouse)");
byte[] csvData = sbf.toString().getBytes();
response.setHeader("Content-Disposition", "attachment;filename=Shipment Inventory Report.csv");
response.setContentLength(sbf.length());
response.setContentType("application/csv");
response.setCharacterEncoding("UTF-8");
response.getOutputStream().write(csvData);
response.getOutputStream().flush();
response.getOutputStream().close();

用String.format()方法追问

有详细一点的代码吗

参考技术A 用String.format()方法

如何使java中double类型不以科学计数法表示

你好,可以使用java.text.DecimalFormat ,格式化数字,比如
1
2
3
4
5
6
double a = 2.3659874;
//小数格式化,引号中的0.000表示保留小数点后三位(第四位四舍五入)
DecimalFormat df = new DecimalFormat("0.000");
String num = df.format(a);
System.out.println(num);
//输出结果就是 2.366
具体你可以查DecimalFormat的使用方法
希望可以帮助到你
参考技术A //对Double类型的数字进行 格式化输出
Java代码 收藏代码
package com.vincent.test;

import java.text.DecimalFormat;

public class TestDouble_String
public static void main(String[] args)

Double double1 = 123456789.123456789;
DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");//格式化设置
System.out.println(decimalFormat.format(double1));
System.out.println(double1);


以上是关于Java导出csv数字如何不以科学计数显示,不能改变原来的值,如不能在前面加'或者=""的主要内容,如果未能解决你的问题,请参考以下文章

java导出CSV 用excel打开 数字过长变成科学计数法

CSV 导出的是科学计数 如何转换

Jasper Report 以 CSV 格式导出带有科学计数法的数字

php导出csv文件数字会自动变科学计数法的解决方法

excel解决超长数字显示科学记数法

导出csv文件数字会自动变科学计数法的解决方法