精华内容
下载资源
问答
  • 【Java开发bug-011】excel设置自定义日期格式
    2022-01-04 14:34:36

    excel设置自定义日期格式

    yyyy-m-d hh:mm:ss
    
    更多相关内容
  • excel表格日期格式设置.doc
  • 具体例子判断和日期格式定义成yyyy--mm-dd例子如: @ResponseBody @RequestMapping("/exportExcel") public void export(HttpServletRequest request, HttpServletResponse response) throws Exception { ... ...

    后端代码实现例子:

    在这里我定义一个 content

    我获取的数据库值就会从0开始对应

    list是数据库调用数据的定义值

    具体例子判断和日期格式定义成yyyy--mm-dd例子如

    @ResponseBody

    @RequestMapping("/exportExcel")
        public void export(HttpServletRequest request, HttpServletResponse response) throws Exception {

    ...

    List<WorkerEntity> list = getWorkerService().getExportWorkers(weParam);

    String title = "xxxx";

    String[] Mytitle = {"姓名", "性别",''创建日期''};

    String sheetName = "xxx档案";

    int a = list.size();
    String content[][] = new String[a][];

    for (int i = 0; i < list.size(); i++) {

    content[i] = new String[Mytitle.length];

    content[i][0] = list.get(i).getChineseName();

    content[i][1] = list.get(i).getSex() == 0 ? "男" : "女";

    content[i][2] = String.valueOf(DateUtil.format(list.get(i).getCreateDate(), DatePattern.NORM_DATE_FORMATTER));

    }

    //创建HSSFWorkbook
    HSSFWorkbook wb = ExportExcelUtil.getHSSFWorkbook(sheetName, Mytitle, title, content, null);

    try {
                String name = "xxxx.xls";      //  文件名
                OutputStream os = response.getOutputStream();  // 取得输出流
                response.reset(); // 清空输出流
                response.setHeader("Content-Disposition", "attachment;filename=" + name + ";filename*=utf-8''"
                        + URLEncoder.encode(name, "UTF-8"));  // 设定输出文件头
                response.setContentType("application/msexcel");// 定义输出类型
                wb.write(os);
                os.flush();
                os.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    注意:

    1.ExportExcelUtil是一个导出的excel格式定义,例子:

    <dependency>
                <groupId>org.meteor</groupId>
                <artifactId>meteor-mgr</artifactId>
                <version>0.0.1.2-SNAPSHOT</version>
    </dependency>

    具体代码:

    package org.meteor.mgr.utils;

    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFDataFormat;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.CellRangeAddress;

    @SuppressWarnings("deprecation")
    public class ExportExcelUtil {
         /**
          *   * 导出Excel
          * @param sheetName sheet名称
          * @param titleColumn 列标题
          * @param title 标题
          * @param values 表内容
          * @param wb  HSSFWorkbook对象
          * @return
          */
        public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []titleColumn,String title,String [][]values, HSSFWorkbook wb){

            // 第一步,创建一个HSSFWorkbook,对应一个Excel文件
            if(wb == null){
                wb = new HSSFWorkbook();
            }

            // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
            HSSFSheet sheet = wb.createSheet(sheetName);
            //创建表名的样式
            HSSFCellStyle tableNamestyle = wb.createCellStyle();
            tableNamestyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
            sheet.autoSizeColumn((short)0);
            tableNamestyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
            tableNamestyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
            tableNamestyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
            tableNamestyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
            //设置字体
            HSSFFont tableNamefont =wb.createFont();
            tableNamefont.setFontHeightInPoints((short) 14); //字体高度
            tableNamefont.setColor(HSSFFont.COLOR_NORMAL); //字体颜色
            tableNamefont.setFontName("宋体"); //字体
            tableNamefont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //宽度
            tableNamestyle.setFont(tableNamefont);
            
            
            //创建第一行
            HSSFRow row = sheet.createRow(0);
            //设置合并单元格样式
            setCellBorder(1,titleColumn.length-1,row,tableNamestyle);
            //单元格合并
            CellRangeAddress cra =new CellRangeAddress(0, 0, 0, titleColumn.length-1);
            sheet.addMergedRegion(cra);
            //声明列对象
            HSSFCell cell = null;
            cell=row.createCell(0);
            cell.setCellValue(title);
            /**设置单元格格式为文本格式*/
            HSSFDataFormat format = wb.createDataFormat();
            tableNamestyle.setDataFormat(format.getFormat("@"));
            cell.setCellStyle(tableNamestyle);//设置单元格格式为"文本"
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);

            
            
            // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
            row = sheet.createRow(1);

            // 第四步,创建单元格,并设置值表头 设置表头居中
            HSSFCellStyle titlestyle = wb.createCellStyle();
            titlestyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
            sheet.autoSizeColumn((short)0);
            //设置字体
            HSSFFont font =wb.createFont();
            font.setFontHeightInPoints((short) 9); //字体高度
            font.setColor(HSSFFont.COLOR_NORMAL); //字体颜色
            font.setFontName("宋体"); //字体
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //宽度
            titlestyle.setFont(font);
            titlestyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
            titlestyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
            titlestyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
            titlestyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
            
            
             
            //创建单元格样式
            HSSFCellStyle cellstyle = wb.createCellStyle();
            //设置字体
            HSSFFont tableCountfont =wb.createFont();
            tableCountfont.setFontHeightInPoints((short) 10); //字体高度
            tableCountfont.setColor(HSSFFont.COLOR_NORMAL); //字体颜色
            tableCountfont.setFontName("宋体"); //字体
            tableCountfont.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); //宽度
            cellstyle.setFont(tableCountfont);
            
            cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
            cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
            cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
            cellstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
            cellstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

            /**设置单元格格式为文本格式*/
            HSSFDataFormat format1 = wb.createDataFormat();
            cellstyle.setDataFormat(format1.getFormat("@"));
            
            
            
            //创建标题
            for(int i=0;i<titleColumn.length;i++){
                cell = row.createCell(i);
                cell.setCellValue(titleColumn[i]);
                cell.setCellStyle(titlestyle);
            }

            //创建内容
            for(int i=0;i<values.length;i++){
                 HSSFCell cellcell = null;
                row = sheet.createRow(i + 2);
                for(int j=0;j<values[i].length;j++){
                    //将内容按顺序赋给对应的列对象
                    cellcell=row.createCell(j);
                    cellcell.setCellValue(values[i][j]);
                    cellcell.setCellStyle(cellstyle);
                    cellcell.setCellType(HSSFCell.CELL_TYPE_STRING);
                }
                
            }
            // 设置为根据内容自动调整列宽    
            for (int k = 0; k < values[0].length; k++) {
                sheet.autoSizeColumn(k);
                HSSFCellStyle cellstyle1 = wb.createCellStyle();
                HSSFDataFormat format2 = wb.createDataFormat();
                cellstyle1.setDataFormat(format2.getFormat("@"));
                sheet.setDefaultColumnStyle(k, cellstyle1);
            }
            setSizeColumn(sheet, values[0].length);
            return wb;
        }

         /**
          * 自适应宽度(中文支持)
          * @param sheet
          * @param size
          */
         public static void setSizeColumn(HSSFSheet sheet, int size) {

             for (int columnNum = 0; columnNum < size; columnNum++) {
                 int columnWidth = sheet.getColumnWidth(columnNum) / 256;
                 for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) {
                     HSSFRow currentRow;
                     //当前行未被使用过
                     if (sheet.getRow(rowNum) == null) {
                         currentRow = sheet.createRow(rowNum);
                     } else {
                         currentRow = sheet.getRow(rowNum);
                     }
                     if (currentRow.getCell(columnNum) != null) {
                         HSSFCell currentCell = currentRow.getCell(columnNum);
                         if (currentCell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
                             int length = currentCell.getStringCellValue().getBytes().length;
                             if (columnWidth < length) {
                                 columnWidth = length;
                             }
                         }
                     }
                 }
                 sheet.setColumnWidth(columnNum, columnWidth * 256);
             }
         }
         /**   
          * 合并单元格加边框  水平   
          * @param sheet   
          * @param region   
          * @param cs
          * 参数说明:start和并的第二列,end为合并的最后一列,row就为当前行,style样式(里面有设置边框)
            例如从0-10列合并: ExcelUtil.setCellBorder(2,10,row,style);   这样可以设置   
          */     
         public static void setCellBorder(int start, int end, HSSFRow row,    HSSFCellStyle style) {     
             for(int i=start;i<=end;i++){        
                 HSSFCell cell = row.createCell(i);        
                 cell.setCellValue("");        
                 cell.setCellStyle(style);        
             }     
         }

    }

    2. Integer类型数据进行判断

    往往数据库一些定义判断都是0和1代表好坏等等的判断

    就比如性别0是男1是女,0是在职1是离职

    content[i][1] = list.get(i).getSex() == 0 ? "男" : "女";

    content[i][1] = list.get(i).getQuit()== 0 ? "在职" : "离职";

    这样导出的excel就不是0和1这种数字而变成了汉字方便查看

    3.日期格式设置

    DateUtil是一个需要导入的包

    <dependency>
              <groupId>cn.hutool</groupId>
              <artifactId>hutool-all</artifactId>
              <version>5.7.12</version>
     </dependency>

    这里有一个时间工具类,具体查看jar包里的源码package cn.hutool.core.date.DateUtil;

    这个例子:

    content[i][1] = String.valueOf(DateUtil.format(list.get(i).getCreateDate(), DatePattern.NORM_DATE_FORMATTER));

    注:把date类型转换成了String,设置导出时间类型为yyyy-MM-dd

    展开全文
  • Javapoi对excel的文档处理,对时间日期格式一些方法
  • POI中设置Excel单元格格式

    热门讨论 2011-12-20 15:40:19
    POI中设置Excel单元格格式
  • ublic WritableCellFormat style_date = new WritableCellFormat(new ...不修改电脑设置,怎么实现导出EXCEL日期格式和代码里设置的一样呢? 转载于:https://www.cnblogs.com/ahwankong/p/3198924.html

    ublic WritableCellFormat style_date = new WritableCellFormat(new DateFormat("yyyy/MM/dd") );
    -----------------------------------------
    style_date.setAlignment(Alignment.CENTRE);
    style_date.setFont( new WritableFont(WritableFont.COURIER, 9) );
    style_date.setBorder(Border.ALL, BorderLineStyle.THIN);
    -----------------------------------------
    data = U.formatDate(U.nullToString((String)PropertyUtils.getProperty(data_list.get(i), column.data_name)).toString());
    dateval = new SimpleDateFormat("yyyy/MM/dd").parse(data);//日期已经格式化好了
    -----------------------------------------
    labelDt = new DateTime(col, row, dateval, style_date );
    label.setCellFormat(style_date );
    sheet.addCell(labelDt);
    -----------------------------------------
    电脑上设置的日期格式是yyyy-MM-dd;
    代码里设置的日期格式是yyyy/MM/dd;
    导出EXCEL显示的是yyyy-MM-dd,而不是代码里设置的yyyy/MM/dd;
    不修改电脑设置,怎么实现导出EXCEL的日期格式和代码里设置的一样呢?

    转载于:https://www.cnblogs.com/ahwankong/p/3198924.html

    展开全文
  • 第一种:日期格式 cell.setCellValue(new Date(2008,5,5)); //set date format HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); HSSFDataFormat format= demoWorkBook.createDataFormat(); cellStyle....

    转自:http://blog.csdn.net/liujimmy/article/details/6328298

    HSSFWorkbook demoWorkBook = new HSSFWorkbook();

    HSSFSheet demoSheet =

    demoWorkBook.createSheet("The World's 500 Enterprises");

    HSSFCell cell =

    demoSheet.createRow(0).createCell(0);

    1.设置单元格为文本格式

    HSSFCellStyle

    cellStyle2 = demoWorkBook.createCellStyle();

    HSSFDataFormat

    format = demoWorkBook.createDataFormat();

    cellStyle2.setDataFormat(format.getFormat("@"));

    cell.setCellStyle(cellStyle2);

    第一种:日期格式

    cell.setCellValue(new Date(2008,5,5));

    //set date format

    HSSFCellStyle cellStyle =

    demoWorkBook.createCellStyle();

    HSSFDataFormat format=

    demoWorkBook.createDataFormat();

    cellStyle.setDataFormat(format.getFormat("yyyy年m月d日"));

    cell.setCellStyle(cellStyle);

    第二种:保留两位小数格式

    cell.setCellValue(1.2);

    HSSFCellStyle cellStyle =

    demoWorkBook.createCellStyle();

    cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));

    cell.setCellStyle(cellStyle);

    //by gisoracle 设置四位小数

    HSSFDataFormat format =

    wb.createDataFormat();

    cellStyle.setDataFormat(format.getFormat("0.0000"));

    // 四位小数

    //by gisoracle 设置四位小数,千分位使用,

    HSSFDataFormat format =

    wb.createDataFormat();

    cellStyle.setDataFormat(format.getFormat("#,##0.0000"));

    // 四位小数

    第三种:货币格式

    cell.setCellValue(20000);

    HSSFCellStyle cellStyle =

    demoWorkBook.createCellStyle();

    HSSFDataFormat format=

    demoWorkBook.createDataFormat();

    cellStyle.setDataFormat(format.getFormat("¥#,##0"));

    cell.setCellStyle(cellStyle);

    第四种:百分比格式

    cell.setCellValue(20);

    HSSFCellStyle cellStyle =

    demoWorkBook.createCellStyle();

    cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00%"));

    cell.setCellStyle(cellStyle);

    此种情况跟第二种一样

    第五种:中文大写格式

    cell.setCellValue(20000);

    HSSFCellStyle cellStyle =

    demoWorkBook.createCellStyle();

    HSSFDataFormat format=

    demoWorkBook.createDataFormat();

    cellStyle.setDataFormat(format.getFormat("[DbNum2][$-804]0"));

    cell.setCellStyle(cellStyle);

    第六种:科学计数法格式

    cell.setCellValue(20000);

    HSSFCellStyle cellStyle =

    demoWorkBook.createCellStyle();

    cellStyle.setDataFormat(

    HSSFDataFormat.getBuiltinFormat("0.00E+00"));

    cell.setCellStyle(cellStyle);

    展开全文
  • 由于读取Excel文件过程中,往往遇到读取出来的时间是数字。因为excel是按照1900年1月1日开始计算至今天数。因此需要进行转换。不过特别注意,0表示1900年1月0日。
  • 此代码示例可用于更改日期格式 . 这里,我想从yyyy-MM-dd改为dd-MM-yyyy . 这里 pos 是列的位置 .import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.CellStyle;import org.apache.poi....
  • excel更改日期格式无效 Excel日期不会更改格式 (Excel Dates Won’t Change Format) Have you ever imported data into Excel, from your credit card statement, or somewhere else, and found that Excel dates ...
  • excel表格日期格式设置精选.doc
  • 这篇文章主要介绍了python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 贴上一个例子,里面设计很...
  • 可以参考这篇博客:如何在excel去掉日期后边的时间-百度经验 (baidu.com)https://jingyan.baidu.com/article/d5a880eb5ad2a253f047cc35.html 分列时,记得选择上【空格】分列,将日期时间拆成两列,效果如下: ...
  • 在Excel中将日期格式批量转换成为文本格式像文本格式的2007.1.1替换为2007-1-1就会自动转化为日期格式,如果设置成文本格式就会变成数字39083我们要批量转化,只能用函数来解决:文本字符串中用 new_text 替代 old...
  • POI导出Excel设置单元格格式

    万次阅读 2018-12-17 21:46:10
    使用Apache的POI相关API导出Excel设置单元格格式 栗子,一下各个代码之间的变量是通用的,要是某个代码块中找不到某个变量,则可以向上找寻 准备工作 InputStream = template//文件输入流 XSSFWorkbook wb = new ...
  • 如何设置导出的EXCEL文件的列格式在office的EXCEL中我们可以在一个EXCEL文件中,选中一列再点击鼠标右键,选择设置单元格格式,可以将这一列设为文本格式等;请问各位,如果我想在导出EXCEL时在代码中实现这个将列的格式...
  • 需求: Excel日期格式设置成常规后显示为数字格式,想要将格式转换成常规后,还显示转换之前的文本信息。 解决方案:
  • Java导出 Excel设置单元格格式

    万次阅读 2019-09-11 10:54:30
    2.设置单元格为日期格式 HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); HSSFDataFormat format= demoWorkBook.createDataFormat(); cellStyle.setDataFormat(format.getFormat("yyyy-MM-dd")); cell...
  • poi设置excel 设置字体格式,java设置excel设置字体格式 import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel....
  • Excel电子表格可以输入输出、显示数据,也利用公式计算一些简单的加减法。可以帮助用户制作各种复杂的表格文档,进行繁琐的数据计算,并能对输入的数据进行各种复杂统计运算后显示为可视性极佳的表格,同时它还能...
  • Excel 日期时间格式讲解

    千次阅读 2017-11-03 15:24:29
    Excel日期时间格式单元格类型为Numeric,表示Excel日期时间内部以double数值存储 double整数部分表示日期,表示自1900-1-1来的天数 double小数部分表示时间 1.2 日期时间转double方法org.apache.poi.ss.usermodel....
  • 问题是您仍编写日期时间-您需要写入之前将其转换为字符串(除了字符串中的内容之外,您将丢失所有内容)或设置单元格的数字格式:from openpyxl import Workbook # openpyxl 2.6.2from openpyxl.utils import get_...
  • 1、首先把此单元格设置日期2001-3-14 格式; 2、插入一列B,用函数:B1=(LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,2)), 其它单元格可以用此公式自动填充。 (二)要想改成1987年7月7日格式。 1、然后把此单元格...
  • 我们在Excel常常会输入各种日期,而很多人输入日期时总是达不到自己想要的那种,总是会或多或少的出现一些差别,今天就来总结一下在excel中输入日期的方法及技巧,希望对你有有所帮助。 工具/原料 Office Excel...
  • excel表格导入处理这里就不展现,这里直接贴上日期值的处理 $date = $data[7]);//时间 if (is_numeric($date) { $t1 = intval(($date- 25569) * 3600 * 24); //转换成1970年以来的秒数 $main['open_time'] = ...
  • 选中一个空白单元格,左手按住Ctrl,右手按下冒号键,就可以快速填充当前的日期。...选择【日期】,并【类型】处用鼠标选择一个格式,这时上面的【示例】处就可以看到单元格显示的预览效果了 ...
  • 条件格式 | 新建格式 | 只为包含以下内容的单元格设置格式 | 单元格值 介于 =TODAY()-2 =TODAY() 规则二(超过截止日期): 条件格式 | 新建格式 | 只为包含以下内容的单元格设置格式 | 单元格值 大于 =TODAY() ...
  • c# 处理Excel时间格式问题 很多初学者一开始处理Excel表格的时候,如果遇到处理时间或多或少都会遇到一些坑。 用这种方式处理,就不会出现问题,如下所示: /// <summary> /// Excel读取为DataTable /// &...
  • Excel设置格式后,往往需要双击一下单元才能生效,如果行数较多,谁很麻烦的。解决办法如下: 1、选中该列数据; 2、数据--分列--分隔符--下一步--Tab键--常规--完成。 其实按照默认一路点下去就好了。 ...
  • ExcelReader类中.getStringCellValue()方法里:public static String getStringCellValue(Cell cell) { if(cell == null){ return ""; } String strCell = ""; switch (cell.getCellType()) { case HSSFCell.CELL_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,849
精华内容 30,339
关键字:

怎么在excel设置日期格式