Tag: datetime

Excel确定单元格的数据types是DateTime还是Int

我正在研究一些function,这些function需要知道给定Excel电子表格的用户的列的数据types。 这些电子表格可以有各种格式,除了第一行是列名以外,没有标准格式。 我遇到的问题是能够区分整数和DateTime列。 目前,我正在使用以下函数来确定单元格是否是DateTime单元格: private bool isOADate(double Val) { try { DateTime dt = DateTime.FromOADate(Val); return true; } catch (ArgumentException) { return false; } } 但是如果一个单元格有1,2,3等等,这个函数返回true,因为它能够将它们转换成1899/12/31 12:00:00 AM,1900/01/01 12:00:00 AM, 1900/01/02 12:00:00 AM。 有没有更好的方法来确定单元格的DateTime数据types? 或者你可以提出一个改进我目前的function,以区分它们?

如何在Power Query中执行相当于AddHours的date时间?

我已经看到PowerQueryexpression式可以从date时间中减去几天,如DateTimeZone.UtcNow.AddDays(-1)。 但是,我想从DateTime中减去小时数 ,而不是几天。 由于在Power Query规范中没有看到像AddHours()这样的函数, 有没有一种可靠的方法可以返回几个小时? 例如,像DateTimeZone.UtcNow + #duration(0,-1,0,0)给我一个小时之前的date时间? [注:我会自己尝试,但我不能在我的本地盒子上安装Power Query,我找不到一个独立的编辑器来尝试它,因此社区问]

将C#date时间对象转换为Exceldate格式

我需要将C#的date时间对象转换为可怕的Exceldate格式: https : //datapub.cdlib.org/2014/04/10/abandon-all-hope-ye-who-enter-dates-in-excel/ 即1900年1月1日以来的天数,用浮点数表示。 有没有办法做到这一点,而不诉诸于DIY代码? 我需要它来创buildExcel友好的CSV导出 除了那个好博客文章外,我没有发现任何有用的东西

在pandas数据框中修复date

场景:我正在使用python代码从excel文件中提取数据。 目前我的代码读取每个文件到一个单一的数据框,并join到数据框的列表中。 问题:原始的Excel源文件按列(date)和标识符(行)组织。 其中一些文件的date格式为string,如20170611或11062015。 我到目前为止的尝试:从以前的研究中,我发现了一些关于这个主题的问题和答案,但是他们都提到了一个转换,例如: datetime.datetime.strptime('24052010', "%d%m%Y").date() datetime.date(2010, 5, 24) 这是我需要的操作,但是我想在一个循环中为受影响的文件的所有列标题执行它。 问:是否可以这样做? 如何做呢? Obs:我想通过一些代码来select那些受影响的代码,但是由于我不知道如何去做,所以我会手工select文件并且单独修改。 所以我的目标只是循环列和修复这些文件的date。 从Excel获取数据的当前代码: import pandas as pd import numpy as np import matplotlib.pyplot as plt import glob, os import datetime as dt from datetime import datetime import matplotlib as mpl directory = os.path.join("C:\\","Users\\DGMS\\Desktop\\final 2") list_of_dfs = [] for root,dirs,files in os.walk(directory): for […]

根据条件不工作删除行

我是新的macrosfunction,并试图删除excel数据的ETB_DT列的4:00,12:00,20:00的行,以显示作为00:00行的8小时表,08:00,16:00和24:00。 这是我目前的数据的例子 ETB_DT_TEST PREDICTED_RECORDS Friday 00:00:00.0000000 3 Saturday 00:00:00.0000000 4 Friday 04:00:00.0000000 105 Saturday 04:00:00.0000000 5 Friday 08:00:00.0000000 10 Saturday 08:00:00.0000000 15 Friday 12:00:00.0000000 30 Saturday 12:00:00.0000000 112 Friday 16:00:00.0000000 56 Saturday 16:00:00.0000000 45 Friday 20:00:00.0000000 10 Saturday 20:00:00.0000000 5 Friday 24:00:00.0000000 34 Saturday 24:00:00.0000000 115 我已经尝试了下面的代码,但它似乎并没有工作。 Sub Button2_Click() Dim pattern As String pattern = […]

从长date – 时间格式提取date

我在列中有以下date和时间: 23 Jul 2016 04:36:37 GMT 24 Jul 2016 07:46:12 GMT 26 Jul 2016 05:44:21 GMT 25 Jul 2016 14:25:39 GMT 20 Jul 2016 15:14:42 GMT 22 Jul 2016 11:52:02 GMT 23 Jul 2016 14:31:31 GMT 23 Jul 2016 11:04:36 GMT 12 Jul 2016 22:33:19 GMT 21 May 2016 20:51:54 GMT 8 Jul 2016 07:38:34 […]

NPOI – 如何区分date时间格式的数字Excel单元格(c#)

背景 我有Excel文件(xlxs)与一些date时间和小数,我想转换成一个二维string数组。 数组中的string看起来应该和用户input到excel中一样。 为此,我使用C#使用NPOI 2.2.1版本。 请注意,示例中的列A在Excel中被格式化为date! COLUMN A COLUMN B 2016-07-20 -46,95 2016-07-20 283,59 2016-07-20 -46,95 2016-07-20 52194,64 我有一个通用的方法ConvertCellToString()将单元格转换成适当的string表示forms: private string GetCellAsString(ICell cell) { switch (cell.CellType) { case CellType.Boolean: return cell.BooleanCellValue.ToString(); case CellType.Error: return cell.ErrorCellValue.ToString(); case CellType.Formula: return cell.CellFormula.ToString(); //ALL CELLS IN THE EXEMPEL ARE NUMERIC AND GOES HERE case CellType.Numeric: return cell.NumericCellValue.ToString(); case CellType.String: […]

如何将20120103这样的数字转换为Excel可识别的date?

我有一个8位数字,告诉我date,YYYYMMDD。 我怎样才能将这个数字转换成Excel将会识别为date的date。 我们假设单元格A1中有20120229 …我该怎么办?

如何在VBA中将给定的数字转换为时间格式HH:MM:SS?

我收到了代表军事时间的自定义格式(types:000000)的数字列表。 它总是包含6位数字,必要时使用前导零。 例如: 123456变成12:34:56(pm) 000321变成00:03:21(上午) 142321变成14:23:21(pm) 如何将列A中的整数转换为列B中的格式(hh:mm:ss)? 我想用军事24小时制的时钟。

Exceldate列未正确读取

我正在从Excel中读取date列 var y = DateTime.FromOADate(GetExcelCellValue(range, rowIndex, DateColumnNumber)); private dynamic GetExcelCellValue(Microsoft.Office.Interop.Excel.Range range, short? row, int col) { var cell = (range.Cells[row, col] as Microsoft.Office.Interop.Excel.Range); return cell == null ? null : cell.Value2; } 但我得到一个错误,例外= “System.DateTime.FromOADate(double)”的最佳重载方法匹配有一些无效的参数“ 当我使用 var x = DateTime.FromOADate(Convert.ToDouble(GetExcelCellValue(range, rowIndex, DateColumnNumber))); 我得到date值30/12/1899 有任何想法吗?