导出excel后 发现 数值类型的字段  在excel中表现为文本类型,这样不利于计算。

解决办法:


// 创建一个可写入的工作表
// Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet(title, 1);
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#0.00"); // 设置数字格式
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(
nf); // 设置表单格式

// 下面开始添加单元格
for (int row = 0; row < titles.length; row++) {
// System.out.println(row);
for (int j = 0; j < titles[row].length; j++) {
if (titleNumFlags[j]) {//当数值型时先转换成double
try {
double titlesDoubleValue = Double
.parseDouble(titles[row][j]);
ws = writeNumberToWs(ws, wcfN, row, j,
titlesDoubleValue);

} catch (Exception notnum) {
String titlesStringValue = titles[row][j];
// 这里需要注意的是,在Excel中,j表示列,row表示行
ws = writeStringToWs(ws, row, j, titlesStringValue);
}
} else {
String titlesStringValue = titles[row][j];
// 这里需要注意的是,在Excel中,j表示列,row表示行
ws = writeStringToWs(ws, row, j, titlesStringValue);
}
}
}

private static WritableSheet writeNumberToWs(WritableSheet ws,
jxl.write.WritableCellFormat wcfN, int row, int j,
double titlesDoubleValue) {
jxl.write.Number labelNF = new jxl.write.Number(j, row,
titlesDoubleValue, wcfN); // 格式化数值

try {
ws.addCell(labelNF);
} catch (RowsExceededException e1) {
e1.printStackTrace();
} catch (WriteException e1) {
e1.printStackTrace();
}
return ws;
}


private static WritableSheet writeStringToWs(WritableSheet ws, int row,
int j, String titlesStringValue) {
Label labelC = new Label(j, row, titlesStringValue);
try {
// 将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
return ws;
}


当是数值类型的 先转换成double类型  保存为Number再写入 excel

poi或jxl都可以生成excel,给你说下baijxl怎么生成的吧,du详细的api你可以从网上下载。zhi
//添加带有formatting的Number对象
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##"); //设置数字格dao式
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf); //设置表单格式
jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN); //格式化数值
ws.addCell(labelNF); //在表单中添加格式化的数字

https://blog.csdn.net/zzq900503/article/details/49123387运用场景:导出excel后 发现 数值类型的字段 在excel中表现为文本类型,这样不利于计算。解决办法:// 创建一个可写入的工作表 // Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 WritableSheet ws = wwb.createSheet(ti...
package com.tht.common.xls; import java .io.File;import java .text.SimpleDateFormat;import java .util.List; import jxl .Workbook;import jxl .format.Alignment;import jxl .format.Border;import jxl .format.Bo...
使用 jxl 读取模板文件,写入数据并 导出 excel 这里为了方便全写在一个main方法里面了。package com. excel . jxl .readexport;import com. excel . jxl .model.User; import jxl .Workbook; import jxl .read.biff.BiffException; import jxl .write.Boolean; import
jxl 允许的每个workbook(一个 excel 文件)中的WritableCellFormat对象个数不超过441个,超过部分的样式会自动丢弃,由 excel 转而去取默认格式。 解决方法:用单例 public class AgentSubsidy Excel Export { private static jxl .write.WritableCellFormat doubleCel
对象属性 类型 定义 float时 导出 excel 后, excel 无法识别为 数值 类型 。无法对这些数据进行统计、汇总、求和等操作。首先总是怀疑是format的问题,但怎么解决不了。     最后看了一下 Jxl s自带的examples,发现他的例子中对象 数值 类型 属性都是定义 double 类型 。我将我的object property类... java .lang.NullPointerException at jxl .biff.DVParser.(DVParser. java :669) at jxl .biff.BaseCellFeatures.getDVParser(BaseCellFeatures. java :501) at jxl .write.biff.SheetWriter.writeDataValidation