NPOI_2.1.3_学习记录(6)-Excel中设置小数、百分比、货币、日期、科学计数法和金额大写

在操作Excel时候一些特殊值的转换是在所难免的,下面就给出转换方法大同小异,代码如下:

HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
ISheet sheet = hssfWorkbook.CreateSheet("Sheet1");
//设置第一列(Cell) 宽度
sheet.SetColumnWidth(0, 5000);
//创建格式化 实例对象
IDataFormat format = hssfWorkbook.CreateDataFormat();

// 保留两位小数格式
// 创建一个单元格 "1.20"
ICell cell = sheet.CreateRow(0).CreateCell(0);
//设置单元格的值
cell.SetCellValue(1.2);
ICellStyle cellStyle = hssfWorkbook.CreateCellStyle();
//格式化值
cellStyle.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00");
cell.CellStyle = cellStyle;

//货币 "¥20,000"
ICell cell2 = sheet.CreateRow(1).CreateCell(0);
cell2.SetCellValue(20000);
ICellStyle cellStyle2 = hssfWorkbook.CreateCellStyle();
cellStyle2.DataFormat = format.GetFormat("¥#,##0");
cell2.CellStyle = cellStyle2;

//科学计数法 "3.15E+00"
ICell cell3 = sheet.CreateRow(2).CreateCell(0);
cell3.SetCellValue(3.151234);
ICellStyle cellStyle3 = hssfWorkbook.CreateCellStyle();
cellStyle3.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00E+00");
cell3.CellStyle = cellStyle3;

//百分比 "99.33%"
ICell cell4 = sheet.CreateRow(3).CreateCell(0);
cell4.SetCellValue(0.99333);
ICellStyle cellStyle4 = hssfWorkbook.CreateCellStyle();
cellStyle4.DataFormat = HSSFDataFormat.GetBuiltinFormat("0.00%");
cell4.CellStyle = cellStyle4;

//电话号码 "021-65881234"
ICell cell5 = sheet.CreateRow(4).CreateCell(0);
cell5.SetCellValue(02165881234);
ICellStyle cellStyle5 = hssfWorkbook.CreateCellStyle();
cellStyle5.DataFormat = format.GetFormat("000-00000000");
cell5.CellStyle = cellStyle5;

//金额大写 - 壹贰叁 元
ICell cell6 = sheet.CreateRow(5).CreateCell(0);
cell6.SetCellValue(123);
ICellStyle cellStyle6 = hssfWorkbook.CreateCellStyle();
cellStyle6.DataFormat = format.GetFormat("[DbNum2][$-804]0 元");
cell6.CellStyle = cellStyle6;

//日期格式化
ICell cell7 = sheet.CreateRow(6).CreateCell(0);
cell7.SetCellValue(new DateTime(2004, 5, 6));
ICellStyle cellStyle7 = hssfWorkbook.CreateCellStyle();
cellStyle7.DataFormat = format.GetFormat("yyyy年m月d日");
cell7.CellStyle = cellStyle7;

//日期格式化
ICell cell8 = sheet.CreateRow(7).CreateCell(0);
cell8.SetCellValue(new DateTime(2005, 11, 6));
ICellStyle cellStyle8 = hssfWorkbook.CreateCellStyle();
cellStyle8.DataFormat = format.GetFormat("yyyy年m月d日");
cell8.CellStyle = cellStyle8;

FileStream file = new FileStream(@"test.xls", FileMode.Create);
hssfWorkbook.Write(file);
file.Close();

在上面的代码中转换的地方有两个方法:

1.HSSFDataFormat.GetBuiltinFormat()
这种标识转换的格式是Excel内嵌的格式,如:“0.00”,完整的Excel内嵌格式列表大家可以看下图。

2.format.GetFormat("000-00000000")
这种则是根据格式去格式化

Excel内嵌格式,如图:

时间: 2024-08-11 03:32:59

NPOI_2.1.3_学习记录(6)-Excel中设置小数、百分比、货币、日期、科学计数法和金额大写的相关文章

NPOI_2.1.3_学习记录(4)-Excel中单元格的复制

这边我直接采用上一步生成的demo.xls. 直接上代码吧 也没有什么好说的: HSSFWorkbook hssfWorkbook; //加载Excel文件 using (var readFile = File.OpenRead(@"D:\demo.xls")) { //文件对象 hssfWorkbook = new HSSFWorkbook(readFile); } //获取工作表1 ISheet iSheet = hssfWorkbook.GetSheetAt(0); ICell

NPOI_2.1.3-Excel中设置小数、百分比、货币、日期、科学计数法和金额大写

在操作Excel时候一些特殊值的转换是在所难免的,下面就给出转换方法大同小异,代码如下: HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); ISheet sheet = hssfWorkbook.CreateSheet("Sheet1"); //设置第一列(Cell) 宽度 sheet.SetColumnWidth(0, 5000); //创建格式化 实例对象 IDataFormat format = hssfWorkbook.Create

NPOI_2.1.3_学习记录(1)-创建Excel的详细信息,如:作者、标题、标记、备注、主题等。

使用到的两个对象:DocumentSummaryInformation和SummaryInformation. 代码如下: static void Main(string[] args) { //Create 一个Excel对象 HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); //Create Excel的属性中的来源以及说明等 DocumentSummaryInformation dsi = PropertySetFactory.CreateDo

NPOI_2.1.3_学习记录(2)-创建Excel的工作表(Sheet)

创建Sheet用到命名空间: using NPOI.SS.UserModel; 在上一篇写入之前插入如下代码: //创建(工作表)Sheet ISheet sheet1 = hssfWorkbook.CreateSheet("Murray工作表_1"); ISheet sheet2 = hssfWorkbook.CreateSheet("Murray工作表_2"); ISheet sheet3 = hssfWorkbook.CreateSheet("Mur

在 Excel 中设置图片

package com.smbea.demo.excel; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStrea

php导出数据到excel,防止身份证等数字字符格式变成科学计数的方-------缺点,必须使用table tr td

php导出数据到excel,防止身份证等数字字符格式变成科学计数的方 时间:2012-08-17 13:50来源:未知 作者:硅峰网络-红豆 点击:219次 在网上查了很多资料知道解决办法大概有两个:一是在身份证字段前加个英文单引号,二是设置Excel的格式为文本格式. 我试用过第一种确实可以显示,但是有个'号在那里感觉确实不是很好,虽然听说不影响,但是需要用户点击那个单元格那个单引号才消失,并且在该 在网上查了很多资料知道解决办法大概有两个:一是在身份证字段前加个英文单引号,二是设置Excel

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $

POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写

再读本篇文章之前,请先看我的前一篇文章,前一篇文章中有重点讲到POI设置EXCEL单元格格式为文本格式,剩下的设置小数.百分比.货币.日期.科学计数法和中文大写这些将在下面一一写出 以下将要介绍的每一种都会用到这三行中的变量 HSSFWorkbook demoWorkBook = new HSSFWorkbook(); HSSFSheet demoSheet = demoWorkBook.createSheet("The World's 500 Enterprises"); HSSFC

python实现自动从mysql数据库取指定数据记录到excel中-新建、追加

xlsxwriter,openpyxl,pandas 模块都可以实现往excel中写入数据,但是为了更简单方便的实现我的需求,选择将三种结合使用. #!/usr/bin/env python3 # -*-coding: utf-8 -*- # @Time:2019/12/26 16:55 # @Author: WSN import pandas as pd import pymysql, openpyxl, os, xlsxwriter # 设定excel文件名称 version = 'V1.4