-
2021-05-15 16:22:09
c# 处理Excel时间格式问题
很多初学者一开始处理Excel表格的时候,如果遇到处理时间或多或少都会遇到一些坑。
用这种方式处理,就不会出现问题,如下所示:/// <summary> /// Excel读取为DataTable /// </summary> /// <param name="strExcelFileName"></param> /// <param name="TableName"></param> /// <returns></returns> public static System.Data.DataTable ExcelToDataTable(string strExcelFileName, string TableName = null) { //源的定义 String strConn = ""; FileInfo file = new FileInfo(strExcelFileName); switch (file.Extension) { case ".xls": strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelFileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; break; case ".xlsx": strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelFileName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'"; break; default: strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelFileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; break; } //连接数据源 OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); DataTable NamesTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); //Sql语句 //string strExcel = string.Format("select * from [{0}$]", strSheetName); 这是一种方法 string sql = "SELECT * FROM [" + NamesTable.Rows[0][2] + "]"; if (!string.IsNullOrEmpty(TableName)) { sql = "SELECT * FROM [" + TableName + "$" + "]"; } OleDbDataAdapter adp = new OleDbDataAdapter(sql, strConn); DataSet myDataSet = new DataSet(); adp.Fill(myDataSet); DataTable NowDT = myDataSet.Tables[0]; return NowDT; }
更多相关内容 -
Excel日期格式转为常规文本格式
2022-04-02 21:09:44需求: Excel日期格式设置成常规后显示为数字格式,想要将格式转换成常规后,还显示转换之前的文本信息。 解决方案:展开全文 -
php 导入excel 日期格式值处理
2021-08-02 10:35:38excel表格导入处理这里就不展现,这里直接贴上日期值的处理 $date = $data[7]);//时间 if (is_numeric($date) { $t1 = intval(($date- 25569) * 3600 * 24); //转换成1970年以来的秒数 $main['open_time'] = ...excel表格导入处理这里就不展现,这里直接贴上日期值的处理
$date = $data[7]);//时间 if (is_numeric($date) { $t1 = intval(($date- 25569) * 3600 * 24); //转换成1970年以来的秒数 $main['open_time'] = gmdate('Y/m/d',$t1); }else{ $main['open_time'] = $date; }
接下来就讲一下为什么要用is_numeric()这个函数去做判断
1、如果excel单元格时间是文本格式,如:'2020/9/29、或者文本格式的2020/9/29值时,php在处理时值,显示的就是2020/9/29;
右击单元格,设置单元格格式,查看单元格格式 excel区别图一:2、如果excel单元格时间是日期格式,如:2020/9/29,那么php在解析数据的时候,就会以文本值去解析,那么你读取的值就不是2020/9/29,而是一串数字44103,后面的小数点就不写了;
右击单元格,设置单元格格式,查看单元格格式 excel区别图二:
以上两种格式在excel表面上看是没有任何区别的,所以需求方就要求嘞,不管是哪一种格式都能导进去。。。。。
so,就简单粗暴点啦,如果是日期格式的数据,那么肯定是一个纯数字,这样就可以用is_numeric()函数去判断,如果是纯数字is_numeric()返回的是1,再配合intval()和gmdate()把纯数字转日期,如果不是则返回空值;gmdate(str,time) ;str的格式可以根据自己的需求去写格式(‘Y-m-d’,‘Y/m/d’)
-
poi对excel处理,针对时间格式
2018-10-01 20:40:36Javapoi对excel的文档处理,对时间日期的格式一些方法 -
java解析Excel日期格式转换问题
2021-07-21 08:56:00java解析Excel日期格式转换问题 Excel上传导入,Excel里面单元格是日期的会解析出来数字,比如2020-07-11会解析为44023 解决方法一: Excel单元格格式设置为文本格式。 解决方法二: 使用代码处理,把解析出来的...java解析Excel日期格式转换问题
Excel上传导入,Excel里面单元格是日期的会解析出来数字,比如2020-07-11会解析为44023
解决方法一:
Excel单元格格式设置为文本格式。
解决方法二:
使用代码处理,把解析出来的44023转换为2020-07-11
代码:复制代码 public static void main(String [] args){ System.out.println(ExcelDoubleToDate("44023")); System.out.println(ExcelDoubleToDate("2017-01-25")); } //解析Excel日期格式 public static String ExcelDoubleToDate(String strDate) { if(strDate.length() == 5){ try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date tDate = DoubleToDate(Double.parseDouble(strDate)); return sdf.format(tDate); }catch (Exception e){ e.printStackTrace(); return strDate; } } return strDate; } //解析Excel日期格式 public static Date DoubleToDate(Double dVal) { Date tDate = new Date(); long localOffset = tDate.getTimezoneOffset() * 60000; //系统时区偏移 1900/1/1 到 1970/1/1 的 25569 天 tDate.setTime((long) ((dVal - 25569) * 24 * 3600 * 1000 + localOffset)); return tDate; }
-
《转载》POI导出excel日期格式
2021-03-11 11:40:01参考帖子:再读本篇文章之前,请先看我的前一篇文章,前一篇文章中有重点讲到POI设置EXCEL单元格格式为文本格式,剩下的设置小数、百分比、货币、日期、科学计数法和中文大写这些将在下面一一写出以下将要介绍的每一... -
excel日期格式改不了_在Excel表格中输入日期的五种方法与技巧
2020-11-04 14:54:33我们在Excel常常会输入各种日期,而很多人在输入日期时总是达不到自己想要的那种,总是会或多或少的出现一些差别,今天就来总结一下在excel中输入日期的方法及技巧,希望对你有有所帮助。 工具/原料 Office Excel... -
java 导入excel 日期格式转换
2020-09-29 12:48:30java 导入excel 日期格式转换 导入日期格式后 获取到的value值为 数值或小数值 直接上硬货 cell = row.getCell(4); String go_time = getCellValue(cell); map.put("go_time",go_time); String go_time = map.... -
C# NPOI 导出Excel 日期格式
2020-08-14 10:23:51NPOI 导出Excel时,如果是需要日期格式,在这处理一下,Excel本身支持的是 XSSF开头 和 HSSF开头就是 .xls 和 .xlsx的区别, 可以强制转换 row = (XSSFRow)sheet.CreateRow(3); //创建行 cell = ... -
C# 读取Excel日期格式
2019-07-23 17:58:38C# 读取Excel日期格式C# 读取Excel日期格式 C# 读取Excel日期格式 读取Excel日期数据,一种方式是在EXCEL中把你的日期列的格式设置一下,设成"文本"型。 如果单元格格式设置为date,则在后台读出的数值是一个数值,如... -
Excel 时间格式相减
2019-09-28 14:28:37...datedif函数是excel的隐藏函数,主要用于计算日期之差,不是四舍五入,是向下取整。 2 以下图为例,在C2单元格输入=DATEDIF(A1,A2,"y"),其中“y”表示计算年份之差。 ... -
Pandas.dataframe.read_excel 读取excel 日期格式
2020-12-19 21:25:24时间得转换成特定的计算机能识别的格式, 计算机才可以帮我们识别分析, 如果以文本来存储, 占用内存资源大不说, 计算机也无法分析识别, 反过来说, 如果仅仅只是将时间保存为文本格式, 用excel也行呀, 用pandas有点... -
java 导出EXCEL 日期格式问题 设置日期格式和本机不一样
2019-10-03 22:02:42ublic WritableCellFormat style_date = new WritableCellFormat(new ...不修改电脑设置,怎么实现导出EXCEL的日期格式和代码里设置的一样呢? 转载于:https://www.cnblogs.com/ahwankong/p/3198924.html -
PHP读取Excel时间格式
2018-11-29 15:23:37最近忙着做项目,写Excel导入时遇到个问题。先简单描述下: Excel设置列单元格格式为日期,如下图 ...原来是Excel 的日期格式在存储的时候的真实内容就是43101。 1900年1月1日就是Excel的第一天。同理,那我... -
layui自带导出excel时间格式处理
2021-08-27 18:00:59// 格式化后台查询出来的数据为时间戳,然后再讲格式化以后的数据给表格 parseData:function(res){ console.log(res); var data = res.data; for(index in data){ /* 申请时间 */ let applytime = data[index]... -
poi导出excel日期格式问题
2019-10-16 14:27:31POI导出Excel的时候有时需要日期格式,在筛选时是这样的 private XSSFWorkbook wb = null; String dateFormat = "yyyy-MM-dd";//或者"yyyy/MM/dd"格式,"yyyy/M/d"这样的格式不会自动补0 public void setCell(int... -
EXCEL日期格式:YYYYMMDD转换成yyyy-mm-dd
2013-05-15 09:35:27EXCEL中经常遇到YYYYMMDD存储的日期需要转为YYYY-MM-DD格式. -
POI导出excel日期格式
2018-03-23 14:47:18http://javacrazyer.iteye.com/blog/894850再读本篇文章之前,请先看我的前一篇文章,前一篇文章中有重点讲到POI设置EXCEL单元格格式为文本格式,剩下的设置小数、百分比、货币、日期、科学计数法和中文大写这些将在... -
Excel 日期时间格式讲解
2017-11-03 15:24:291.Excel中日期时间1.1 存储格式 Excel中日期时间以1900-1-1 00:00:00为起点 Excel中日期时间格式单元格类型为Numeric,表示Excel日期时间内部以double数值存储 double整数部分表示日期,表示自1900-1-1来的天数 ... -
关于通过前端xslx解析excel日期格式数据转化问题以及自定义时间格式YYYY-MM-DD转化
2020-07-16 09:41:24如果excel中内容如下,需要解析时间格式的内容 XLSX.read会默认解析为天数的时间戳字符串(从1900年算起到当前日期的天数) 如果想让xlsx帮我们解析时,就完成解析时间格式,只需要加上如下配置即可 ... -
java将excel时间格式数据转换成对应格式的字符串
2020-04-26 15:12:39String dateStr2="43306.4153240741"; Date date = org.apache.poi.ss.usermodel.DateUtil .getJavaDate(Double.valueOf(dateStr)); DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss... -
EXCEL日期格式转为文本格式且不变动原内容
2019-05-15 10:31:38如果我们在想EXCEL中想把一列日期格式的数据转换为文本格式,如果直接在“设置单元格格式”中将日期格式改为文本格式,就会发现原来的日期会变成与该日期相对应的日期编码,如下图: 右侧数字即为直接转为文本后... -
POI获取excel日期格式并转换
2019-07-27 18:03:31SimpleDateFormat dateformat = new SimpleDateFormat( "yyyy/MM/dd"); Date dt = HSSFDateUtil.getJavaDate(aCell ... -
POI处理Excel中各种日期格式问题
2021-03-06 03:30:50前不久写过一篇随笔《EXCEL解析之终极方法WorkbookFactory》,提到使用WorkbookFactory来处理Excel文件数据,最近发现一个问题就是这个办法不能很好的处理各种日期格式,比如下面这些:那么如何将这些格式正确识别并... -
excel更改日期格式无效_Excel日期不会更改格式
2020-08-08 15:47:56excel更改日期格式无效 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 ... -
解决python读取excel日期格式问题(日期变为数字,int变为double)
2020-03-11 17:29:26excel数据如下: 读取excel # 读取excel文件 excel_data = xlrd.open_workbook(excel_path) # 获取第一个sheet页 sheet = excel_data.sheet_by_index(0) # 读取数据 for i in range(0, rows): for j in range(0, ... -
excel日期格式转换.docx
2021-09-26 22:59:22excel日期格式转换.docx