精华内容
下载资源
问答
  • 用类HtmlCss的方式设置C# 使用Npoi生成Excel单元格格式.
  • POI导出Excel设置单元格格式

    万次阅读 2018-12-17 21:46:10
    使用Apache的POI相关API导出Excel设置单元格格式 栗子,一下各个代码之间的变量是通用的,要是某个代码块找不到某个变量,则可以向上找寻 准备工作 InputStream = template//文件输入流 XSSFWorkbook wb = new ...

    使用Apache的POI相关API导出Excel设置单元格格式

    栗子,一下各个代码之间的变量是通用的,要是在某个代码块中找不到某个变量,则可以向上找寻

    准备工作

    InputStream = template//文件输入流
    XSSFWorkbook wb = new XSSFWorkbook(template);
    Sheet sheet = wb.getSheetAt(0);
    

    设置单元格格式

    XSSFCellStyle cellStyle = wb.createCellStyle();//初始化单元格格式对象
    cellStyle.setAlignment(CellStyle.ALIGN_GENERAL);//设置水平对齐方式,有多种对齐方式,如果你稍微了解一点英文也能知道:Alignment(水平)、ALIGN_LEFT(左对齐)
    cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//设置垂直对齐方式,Vertical(垂直)
    XSSFDataFormat dataFormat = wb.createDataFormat();//创建格式化对象
    cellStyle.setDataFormat(dataFormat.getFormat("#,##0.00"));//设置数值类型格式为保留两位小数
    cellStyle.setFillBackgroundColor(IndexedColors.PINK.getIndex());;//设置单元格背景色为骚粉
    cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//改用指定模式填充单元格颜色(主要用于使你设置的颜色生效以及生效方式)
    cellStyle.setWrapText(true);//开启自动换行
    Row excelRow = sheet.createRow(0);//创建单元行,索引从0开始
    excelRow.setHeightInPoints(30);//设置行高
    sheet.setColumnWidth(i, 256 * 15);//设置某列的列宽,列号为“i”
    Cell cell = excelRow.createCell(0);//创建单元格,索引从0开始
    cell.setCellStyle(cellStyle);// 设置单元格格式
    

    创建各种类型单元格

            // 创建数字类型的单元格
            Cell cell = row.createCell((short)0);
            cell.setCellValue(1);
            row.createCell(1).setCellValue(1.2);
            //创建单元格并接设置值为简单字符串
            row.createCell(2).setCellValue("This is a string cell");
            //创建单元格并接设置值为富文本
            RichTextString str = creationHelper.createRichTextString("Apache");
            Font font = wb.createFont();
            font.setItalic(true);
            font.setUnderline(Font.U_SINGLE);
            str.applyFont(font);
            row.createCell(3).setCellValue(str);
    
            //创建boolean类型的单元格
            row.createCell(4).setCellValue(true);
            //创建单元格,当前单元的值是通过公式得到的 formula
            row.createCell(5).setCellFormula("SUM(A1:B1)");
            //创建日期类型的单元格并接进行格式化
            CellStyle style = wb.createCellStyle();
            style.setDataFormat(creationHelper.createDataFormat().getFormat("m/d/yy h:mm"));
            cell = row.createCell(6);
            cell.setCellValue(new Date());
            cell.setCellStyle(style);
            //创建超链接类型的单元格
            cell.setCellFormula("HYPERLINK(\"http://baidu.com\",\"baidu\")");
    

    创建单元格注释

    CreationHelper factory = wb.getCreationHelper(); 
    Cell cell = sheet.createRow(1).createCell(1);//创建第二行第二列的单元格
    Drawing drawing = sheet.createDrawingPatriarch();  //创建顶层DrawingPatriarch,用于添加图形或图表(通常会覆盖原有效果)
    ClientAnchor anchor = factory.createClientAnchor();  //创建ClientAnchor,使用此对象将工程图对象放置在工作表中
    Comment comment = drawing.createCellComment(anchor);  //创建注释
    RichTextString text = creationHelper.createRichTextString("flydoging's demo");
    Font font = wb.createFont();  //创建字体用于设置注释字体格式
    font.setFontName("Arial");  
    font.setFontHeightInPoints((short)14);  
    font.setBoldweight(Font.BOLDWEIGHT_BOLD);  
    font.setColor(IndexedColors.RED.getIndex());  //设置红色字体
    text.applyFont(font); 
    comment.setString(text);//设置注释体
    comment.setAuthor("flydoging");//设置作者
    cell.setCellComment(comment); 
    

    CreationHelper是个啥,官方文档
    An object that handles instantiating concrete classes of the various instances one needs for HSSF and XSSF. Works around a limitation in Java where we cannot have static methods on interfaces or abstract classes. This allows you to get the appropriate class for a given interface, without you having to worry about if you’re dealing with HSSF or XSSF.
    英文不太好,大概意思是说:你可以使用CreationHelper的创建各种用于HSSF、XSSF实例化的对象,通过它的API也可以发现:创建富文本、超链接等等。其实你通过上边wb创建的是HSSFCreationHelper, SXSSFCreationHelper, XSSFCreationHelper三个其中之一,具体是哪个取决于你使用的WorkBook。

    获取文档的嵌入文件

        public static void main(String[] args) throws Exception {
            XSSFWorkbook workbook = new XSSFWorkbook(args[0]);
            for (PackagePart pPart : workbook.getAllEmbedds()) {
                String contentType = pPart.getContentType();
                // Excel Workbook - either binary or OpenXML
                if (contentType.equals("application/vnd.ms-excel")) {//offic 2003 excel
                    HSSFWorkbook embeddedWorkbook = new HSSFWorkbook(pPart.getInputStream());
                }
                // Excel Workbook - OpenXML file format
                else if (contentType.equals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) {//offic 2007 excel
                    XSSFWorkbook embeddedWorkbook = new XSSFWorkbook(pPart.getInputStream());
                }
                // Word Document - binary (OLE2CDF) file format
                else if (contentType.equals("application/msword")) {//offic 2003 word
                    HWPFDocument document = new HWPFDocument(pPart.getInputStream());
                }
                // Word Document - OpenXML file format
                else if (contentType.equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document")) {
                    XWPFDocument document = new XWPFDocument(pPart.getInputStream());
                }
                // PowerPoint Document - binary file format
                else if (contentType.equals("application/vnd.ms-powerpoint")) {
                    HSLFSlideShow slideShow = new HSLFSlideShow(pPart.getInputStream());
                }
                // PowerPoint Document - OpenXML file format
                else if (contentType.equals("application/vnd.openxmlformats-officedocument.presentationml.presentation")) {
                    OPCPackage docPackage = OPCPackage.open(pPart.getInputStream());
                    XSLFSlideShow slideShow = new XSLFSlideShow(docPackage);
                }
                // Any other type of embedded object.
                else {
                    System.out.println("Unknown Embedded Document: " + contentType);
                    InputStream inputStream = pPart.getInputStream();
                }
            }
        }
    
    展开全文
  • POI设置Excel单元格格式

    热门讨论 2011-12-20 15:40:19
    POI设置Excel单元格格式
  • 使用EasyExcel导出Excel指定单元格格式

    千次阅读 2021-03-19 14:24:56
    简介:日常导出excel时导出日期格式一般都是将日期转换成yyyy-MM-dd格式的字符串,很少有情况需要关注单元格格式,但是特殊需求下,我们仍然需要注意单元格...此种情况下导出的excel,虽然单元格中显示的数据是时

    简介:在日常导出excel时导出日期格式一般都是将日期转换成yyyy-MM-dd格式的字符串,很少有情况需要关注单元格格式,但是在特殊需求下,我们仍然需要注意单元格格式。

    1.正常导出EXCEL

    public class FourListExcelDto {
    
        @DateTimeFormat("yyyy/M/dd")
        @ExcelProperty({"时间"})
        private Date exportDate;
        
    }
    

    在此种情况下导出的excel,虽然单元格中显示的数据是时间类型但是单元格本身还是常规类型的
    在这里插入图片描述

    2.导出日期单元格格式

    在EasyExcel官方文档上查询无果后,又去官方的钉钉群中询问也是杳无音讯,随后开始查看EasyExcel和poi的源码,发现在EasyExcel中的ContentStyle注解上有一个dataFormat参数

    /**
     * Custom content styles
     *
     * @author Jiaju Zhuang
     */
    @Target({ElementType.FIELD, ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Inherited
    public @interface ContentStyle {
        /**
         * Set the data format (must be a valid format). Built in formats are defined at {@link BuiltinFormats}.
         */
        short dataFormat() default -1;
    	//...
    

    该参数需要传入一个short值,根据源码上的注释查看BuiltinFormats类中发现,该short值其实是自定义数组的下标

    public final class BuiltinFormats {
        public static final int FIRST_USER_DEFINED_FORMAT_INDEX = 164;
        private static final String[] _formats = new String[]{"General", "0", "0.00", "#,##0", "#,##0.00", "\"$\"#,##0_);(\"$\"#,##0)", "\"$\"#,##0_);[Red](\"$\"#,##0)", "\"$\"#,##0.00_);(\"$\"#,##0.00)", "\"$\"#,##0.00_);[Red](\"$\"#,##0.00)", "0%", "0.00%", "0.00E+00", "# ?/?", "# ??/??", "m/d/yy", "d-mmm-yy", "d-mmm", "mmm-yy", "h:mm AM/PM", "h:mm:ss AM/PM", "h:mm", "h:mm:ss", "m/d/yy h:mm", "reserved-0x17", "reserved-0x18", "reserved-0x19", "reserved-0x1A", "reserved-0x1B", "reserved-0x1C", "reserved-0x1D", "reserved-0x1E", "reserved-0x1F", "reserved-0x20", "reserved-0x21", "reserved-0x22", "reserved-0x23", "reserved-0x24", "#,##0_);(#,##0)", "#,##0_);[Red](#,##0)", "#,##0.00_);(#,##0.00)", "#,##0.00_);[Red](#,##0.00)", "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)", "_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)", "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)", "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)", "mm:ss", "[h]:mm:ss", "mm:ss.0", "##0.0E+0", "@"};
    

    如果需要指定类型,则传入指定类型的下标。
    随后修改实体类上的注解

    public class FourListExcelDto {
    
    	@ContentStyle(dataFormat = 14)
        @DateTimeFormat("yyyy/M/dd")
        @ExcelProperty({"时间"})
        private Date exportDate;
        
    }
    

    再导出EXCEL后查看该列数据,为正确的日期格式
    在这里插入图片描述

    展开全文
  • NPOI读取Excel设置单元格格式为数值不生效问题

    初学C#踩坑第一篇

    NPOI读取Excel设置单元格格式为数值不生效问题

    问题简介:
    C#使用NPOI写入Excel是修改单元格不能修改,生成后Excel需要打开后双击单元格才会改变格式,话不多说下面直接讲解决办法。

    出现问题点:
    给单元格赋值时全部赋值的时String类型的值,所以导致单元格格式不生效。

    解决方法:
    为单元格赋值时赋值相应类型的值,例如:单元格格式为数值,则赋值double。

     //设置单元格格式代码
     IDataFormat dataformat = workbook.CreateDataFormat();
     ICellStyle style2 = workbook.CreateCellStyle();
     style2.DataFormat = dataformat.GetFormat("0.0"); //改变小数精度【小数点后有几个0表示精确到小数点后几位】
    
    IDataFormat dataformat = workbook.CreateDataFormat();
    ICellStyle style2 = workbook.CreateCellStyle();
    style2.DataFormat = dataformat.GetFormat("0.0"); //改变小数精度【小数点后有几个0表示精确到小数点后几位】
    foreach (DataRow row in sourceTable.Rows)
    {
        IRow dataRow = sheet.CreateRow(rowIndex);
        sheet.CreateRow(rowIndex).Height = 100 * 5;
        foreach (DataColumn column in sourceTable.Columns)
        {
            //遍历DataRow时当列为金额时,将单元格格式改为数值格式
            if (column.ToString() == "金额")
            {
                ICell RowCell = dataRow.CreateCell(column.Ordinal);
                //来看这里 #############################################
                //给单元格赋值时进行一下类型转换 double.Parse((row[column] ?? "").ToString())
                RowCell.SetCellValue(double.Parse((row[column] ?? "").ToString()));
                RowCell.CellStyle = style2;
            }
            else
            {
                ICell RowCell = dataRow.CreateCell(column.Ordinal);
                RowCell.SetCellValue((row[column] ?? "").ToString());
                RowCell.CellStyle = style;
            }
    
    
        }
    

    到次就大功告成了。

    展开全文
  • 内容提要:本文介绍一种在excel工作表快速有效清除单元格格式的方法。对Excel感兴趣的朋友可加Excel学习交流群:284029260(www.itblw.com)  excel清除单元格格式属于技巧操作范畴。  下面只是一个假设,比如...
    内容提要:本文介绍一种在excel工作表中快速有效清除单元格格式的方法。对Excel感兴趣的朋友可加 Excel学习交流群:284029260(www.itblw.com

      excel清除单元格格式属于技巧操作范畴。

      下面只是一个假设,比如一个excel工作表中有很多分散在不同单元格区域的单元格填充了黄色,现在需要将工作表中所有填充了黄色的单元格快速取消清除单元格格式,不填充任何颜色。

      该如何批量快速的进行excel清除单元格格式呢?

    excel清除单元格格式

      下面介绍的这种快速清除单元格格式的技巧,希望对初学者有所帮助。

      第一步,按ctrl+F快捷键,打开“查找和替换”对话框,单击“格式”下面的“从单元格选择格式”,然后用弹出的吸管工具去单击excel工作表中任意一个黄色单元格。

      这个作用就是用吸管去复制单元格格式。

    excel清除单元格格式

      第二步,单击“查找全部”,并按ctrl+A快捷键选定所有黄色单元格区域,关闭“查找和替换”对话框。

      第三步,将选中的单元格格式设置为“无填充颜色”,这样就实现了excel清除单元格格式。

      总结:本技巧就是使用excel查找替换功能的“格式”命令将具有相同格式的单元格全部查找出来,然后再批量快速清除单元格格式。

      下面是excel清除单元格格式本技巧的动画演示过程:

    excel清除单元格格式

    展开全文
  • 用Pythonopenpyxl处理excel设置单元格格式

    万次阅读 多人点赞 2019-04-22 23:02:39
    #单元格格式 ws['B2']=datetime.datetime(2010,7,21) print(ws['B2'].number_format)#yyyy-mm-dd h:mm:ss ws['B3']='12%' print(ws['B3'].number_format)#General #使用公式 ws["A1"]=1 ws["A2"]=2 ws["A3"]=...
  • Excel VBA 单元格格式

    千次阅读 2017-12-04 11:00:01
    单元格水平 竖向居中 Sheet.Range(“A6”).HorizontalAlignment = = xlCenter ‘= 3单元格水平居中 Sheet.Range(“A6”).VerticalAlignment = xlCenter ‘=2 单元格竖向居中 此属性的值可设为以下常量之一: ...
  • C#操作Excel单元格格式

    2012-09-06 22:03:41
    文章介绍了使用C#设置EXCEL单元格格式
  • Excel更改单元格格式后无效

    千次阅读 2017-09-10 08:58:00
    问题描述: 比如修改了数据的自定义显示...这其实是Excel格式显示问题,一般双击单元格格式就会自动修正。对于大量数据,可以选择数据——分列——完成,可以自动刷新。 转载于:https://www.cnblogs.com/b...
  • Python处理Excel的问题方面,设置单元格格式是无法回避的,这里我主要用openpyxl处理。网上这种资料很多,我这里写了一个函数,汇总了一下。 from openpyxl import load_workbook from openpyxl.utils import get_...
  • C# 操作Excel单元格格式,具体的对操作Excel
  • Java导出 Excel设置单元格格式

    万次阅读 2019-09-11 10:54:30
    1.设置单元格为文本格式 HSSFCellStyle cellStyle2 = demoWorkBook.createCellStyle(); HSSFDataFormat format = demoWorkBook.createDataFormat(); cellStyle2.setDataFormat(format.getFormat("@")); cell....
  • Java利用POI导出Excel设置单元格格式

    万次阅读 2017-10-04 15:17:47
    HSSFDataFormat的数据格式 内置数据类型 编号 内置数据类型 编号 “General” 0 “h:mm:ss AM/PM” 0x13 “0” 1 “h:mm” 0x14 “0.00” 2 ...
  • EXCEL单元格格式有多重形式,但是EXCEL为我们提供了自定义格式的方法,此文档即详细介绍这些方法,欢迎指教!
  • Excel中单元格引用

    千次阅读 2018-09-03 23:12:12
    Excel使用函数公式计算表格的数据时,往往需要对单元格进行引用,在Excel2016单元格的引用包括相对引用,绝对引用 和混合引用。下面分别介绍一下这三种引用。 一、相对引用 相对引用是指引用单元格的...
  • C# 使用 Response 导出 Excel 单元格格式设置为文本格式C# 使用 Response 导出 Excel 单元格格式设置为文本格式问题描述解决办法效果演示 C# 使用 Response 导出 Excel 单元格格式设置为文本格式 系统:Win10 IDE:...
  • python 读取excel中单元格的内容

    万次阅读 2018-11-02 20:25:41
    python 读取excel中单元格的内容    excel文件内容:   读取excel代码: # coding=utf-8 import xlrd import sys reload(sys) sys.setdefaultencoding('utf-8') import traceback class excelHandl...
  • laravel导入导出excel的插件:mattwebsite/excel 安装: composer require mattwebsite/excel 文档:... *注意:设置单元格格式为数...
  • Python设置excel单元格格式

    万次阅读 多人点赞 2019-02-25 16:50:48
    xlwt 设置单元格样式主要是通过 XFStyle 这个类来完成的,XFStyle 类属性与单元格属性的对应关系如下: XFStyle属性名 对应单元格属性 值类型 num_format_str 数字 str font 字体 Font类实例...
  • c#设置Excel单元格格式 

    千次阅读 2009-02-13 14:12:00
    经典!!(告别操作EXCEL的烦恼)http://www.tzwhx.com/newOperate/html/1/11/112/12383.html c#设置Excel单元格格式 2007-08-14 00:25 分类:编程技术 字号: 大大 中中 小小
  • openpyxl更改excel单元格格式

    千次阅读 2020-04-13 23:35:46
    今天帮朋友写一个excel处理的小程序,他需要处理xlsx格式的文件,但是他的单元格有的是文本,有的是数字,处理起来需要统一格式。我使用的openpyxl,开始的时候搜了半天都没找到解决方案,之后一个国外论坛终于...
  • 1) 文本:vnd.ms-excel.numberformat:@2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd3) 数字:vnd.ms-excel.numberformat:#,##0.004) 货币:vnd.ms-excel.numberformat:¥#,##0.005) 百分比:vnd.ms-excel....
  • C#设置Excel单元格格式

    千次阅读 2019-06-24 16:29:20
     mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Interior.ColorIndex=3;  15 、单元格自动换行 myrange.WrapText = true;  16 、单元格行高自动调整 myrange...
  • 最近遇到了一个问题,给定了一个Excel模板,修改表格里面的内容,但是不能修改Excel表格的格式。用pywin32太慢,用xlrd只能读,用xlwt只能写。 很快,我查到了网上“修改Excel内容但保留格式”的方法,大概是需要...
  • delphi 操作Excel单元格dffffddfd
  • 为转换截图如下: 解决方案:excel 数据 - 分列 日期格式,这样就可以立即转换了,转换后截图如下:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 109,235
精华内容 43,694
关键字:

在excel中单元格的格式