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();
有详细一点的代码吗
参考技术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打开 数字过长变成科学计数法