Comments (3)
Libxlsxwriter takes the infamous Excel 1900 leap year into account but writxl does a direct date conversion (for performance I guess) and get bitten by it for dates before 1900-03-01.
I'll submit a fix.
from writexl.
I've pushed a fix in #59.
Here is a small working example:
> df <- data.frame(dates = c(as.POSIXct("1899-12-31 00:00", 'UTC'),
+ as.POSIXct("1900-01-01 00:00", 'UTC'),
+ as.POSIXct("1900-02-28 00:00", 'UTC'),
+ as.POSIXct("1900-03-01 00:00", 'UTC')),
+ numbers = c(0, 1, 59, 61),
+ check = xl_formula(c("=A2-B2", "=A3-B3", "=A4-B4", "=A5-B5")))
>
> writexl::write_xlsx(df, 'datetimes.xlsx')
>
> readxl::read_xlsx('datetimes.xlsx')
# A tibble: 4 x 3
dates numbers check
<dttm> <dbl> <dbl>
1 1899-12-31 00:00:00 0 0
2 1900-01-01 00:00:00 1 0
3 1900-02-28 00:00:00 59 0
4 1900-03-01 00:00:00 61 0
Output:
Without the fix you get this error from read_xlsx:
> readxl::read_xlsx('datetimes.xlsx')
# A tibble: 4 x 3
dates numbers check
<dttm> <dbl> <dbl>
1 1900-01-01 00:00:00 0 0
2 1900-01-02 00:00:00 1 0
3 NA 59 0
4 1900-03-01 00:00:00 61 0
Warning message:
In read_fun(path = enc2native(normalizePath(path)), sheet_i = sheet, :
NA inserted for impossible 1900-02-29 datetime
from writexl.
Great response! Will definitely help when working with data out of SAP! They tend to separate date and time into separate columns, so great to end up on the right day when they are re-combined.
from writexl.
Related Issues (20)
- write_xlsx fails silently if no path argument supplied HOT 1
- Error in libxlsxwriter: 'String exceeds Excel's limit of 32,767 characters.' HOT 6
- NAs HOT 2
- Never ever remove Clippy! HOT 4
- Error in libxlsxwriter : 'Worksheet row or column index out of range.' HOT 2
- I Loved Clippy !
- writexl::write_xlsx incompatibility with openxlsx HOT 3
- write_xlsx gives 2 errors when writing dates with NA - version 1.4.1 HOT 4
- writexl1.4.1 bug: Empty field -> "nan(snan) HOT 5
- write_xlsx directory
- Write / overwrite a sheet in an existing excel workbook (without overwriting entire workbook)? HOT 2
- Bug: Clippy does not appear! HOT 1
- Dont try to write more than max rows
- Mention openxlsx2 as an alternative to write content
- Feature Request: Make Clippy togglable
- Failure when the storage type of `POSIXct` is `integer`
- Support NetBSD, thanks HOT 3
- write xlsx without any fonts HOT 3
- File with multiple sheets is not recognized as excel file
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from writexl.