当前位置: 首页 > news >正文

wordpress 导航网站中徽园林建设有限公司网站

wordpress 导航网站,中徽园林建设有限公司网站,品牌注册号,电子商务包括哪些内容使用easyexcel可以将csv格式的文件转为.xlsx文件,但是csv中有很多数字,比如:"123","12.34","-111",默认情况下会将其作为字符串写入.xlsx文件,就如同下面一样,字符类型的数字…

        使用easyexcel可以将csv格式的文件转为.xlsx文件,但是csv中有很多数字,比如:"123","12.34","-111",默认情况下会将其作为字符串写入.xlsx文件,就如同下面一样,字符类型的数字无法直接在excel中做统计和计算,因此需要将其写入excel时转为数字存储。

        我们可以使用自定义转换器识别每个单元格中的内容是否是数字,然后将其转为数值类型。

1.csv转为excel程序

@Async("asyncExcelAnalysisServiceExecutor")public Future<String> csv2Excel(InputStream inputStream, OutputStream outputStream, String sheetName) {try {ExcelWriter writer = EasyExcel.write(outputStream).excelType(ExcelTypeEnum.XLSX)//注册写入时类型转换器.registerConverter(new BigDecimalConvert()).build();EasyExcel.read(inputStream, new EasyExcelGeneralCsvListener(writer, new WriteSheet())).excelType(ExcelTypeEnum.CSV).charset(Charset.forName("UTF-8")).sheet().sheetNo(0).sheetName(sheetName).doRead();writer.finish();outputStream.flush();} catch (Exception e) {log.error("ExcelWriter.finish() -> csv转为excel出错!", e.getMessage());e.printStackTrace();} catch (Error x) {log.error("ExcelWriter.finish() -> csv转为excel出错!", x.getMessage());x.printStackTrace();} catch (Throwable x) {log.error("ExcelWriter.finish() -> csv转为excel出错!", x.getMessage());x.printStackTrace();} finally {if (outputStream != null) {try {outputStream.close();} catch (Exception e) {log.error("outputStream.close() -> csv转为excel出错!", e.getMessage());e.printStackTrace();}}if (inputStream != null) {try {inputStream.close();} catch (Exception e) {log.error("inputStream.close() -> csv转为excel出错!", e.getMessage());e.printStackTrace();}}}return new AsyncResult<>("success");}

 2.自定义类型转换器

import java.math.BigDecimal;import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.xxx.xxx.common.utils.ObjectUtil;/*** description:BigDecimalConvert** @author: lgq* @create: 2024-06-04 09:22*/
public class BigDecimalConvert  implements Converter<String> {/*** 支持的Java类型** @return*/@Overridepublic Class supportJavaTypeKey() {return String.class;}/*** 支持的excel类型** @return*/@Overridepublic CellDataTypeEnum supportExcelTypeKey() {return CellDataTypeEnum.STRING;}/*** 转换Java支持的类型** @param cellData* @param excelContentProperty* @param globalConfiguration* @return* @throws Exception*/@Overridepublic String convertToJavaData(ReadCellData cellData, ExcelContentProperty excelContentProperty,GlobalConfiguration globalConfiguration) throws Exception {return cellData.getStringValue();}/*** 转换为Excel支持的类型** @param s* @param excelContentProperty* @param globalConfiguration* @return* @throws Exception*/@Overridepublic WriteCellData convertToExcelData(String s, ExcelContentProperty excelContentProperty,GlobalConfiguration globalConfiguration) throws Exception {String convertS = convertBigDecimal(s);if (!ObjectUtil.isEmpty(convertS)) {BigDecimal bigDecimal = new BigDecimal(convertS);return new WriteCellData(bigDecimal);} else {return new WriteCellData(s);}}public static String convertBigDecimal(String str) {if (str == null || str.trim().length() == 0) {return null;}StringBuilder convertS = new StringBuilder();char[] chars = str.toCharArray();int sz = chars.length;int i = (chars[0] == '-') ? 1 : 0;if (i == sz) {return null;}//除了负号,第一位不能为'小数点'if (chars[i] == '.') {return null;}boolean radixPoint = false;for (; i < sz; i++) {boolean isComma = false;if (chars[i] == '.') {if (radixPoint) {return null;}radixPoint = true;} else if (!(chars[i] >= '0' && chars[i] <= '9') && !(isComma = (",".equals(String.valueOf(chars[i]))))) {return null;}//删除数字中间的英文逗号if (!isComma) {convertS.append(chars[i]);}}return convertS.toString();}
}

3.实现效果

http://www.yayakq.cn/news/263302/

相关文章:

  • 全球最顶尖的设计公司wordpress多城市seo
  • 塔城北京网站建设给wordpress注册用户发邮件
  • 免费素材网站psd网站免费正能量加载要快
  • 南京做网站工作室网站的做网站的公司
  • 能否设置网站做局域网wordpress 咨询插件
  • 装修网站排行榜前十名有哪些营销策划方案的主要内容有哪些
  • 检测网站开发wordpress 微信登录插件下载失败
  • 网页制作网站首页网页程序设计是什么
  • 英文营销网站 知乎做网站在哪里做
  • 网站建设德语快速搭建网站的好处
  • 视频发布播放网站建设wordpress 漫画网站
  • wordpress 消息队列安卓系统优化app
  • 哪里建网站最好seo快速排名
  • 公司网站域名 优帮云搬家网站建设思路
  • 51比购网官方网站大连公司做网站
  • 网站推广策划评估工具7用照片做视频的网站
  • app应用网站单页模板在线永久免费的服务器有哪些
  • 所有北京网站建设公司做网站生成二维码
  • 微信浏览为网站的缓存怎么清理先买空间再写网站
  • 怎么在百度上做单位网站深圳怎么注册公司
  • 律师做推广的网站济南网站建设服务哪家好
  • 创新的天津网站建设icp备案查询官方网站
  • 家装公司网站开发方案烟台福山网站建设
  • 网站备案要多长时间saas建站cms
  • 网站建设与发布需要什么产品设计培训
  • 响应式建设网站vs2008 手机网站开发
  • 易瑞通网站建设移动商城网站建设
  • 网站建设公司包括哪些网站说服力
  • 网站搭建报价单怎么制作长图
  • php网站做cdnwordpress单页导航模版