I have a c# program which needs to create an excel object, and do some operations, here are parts of my code:
// c# code:
workSheet.Cells[1, 1] = "=2012/9/20"; //asign "2012/9/20" to cell[1,1] in Excel
double d = workSheet.Cells[1, 1].value(); // by default, Excel will return 11.17
Debug.Print(d.ToString()); //c#: d = 11.1777777777778
so how to make the output become "2012/9/20" again?
I have tried some codes, but fail:
DateTime str = DateTime.FromOADate(d); //c#: str = 1/10/1900 4:16:00 AM
DateTime str = new DateTime((long)d); //c#: str = 1/1/0001 12:00:00 AM
You can try this:
First set the format in the cell:
ws.Cells[1,1].Style.Numberformat.Format = "yyyy/MM/dd";
Then set value as DateTime:
workSheet.Cells[1, 1] =new DateTime(2012,9,20);
And to get value use the following:
double d = double.Parse(workSheet.Cells[1, 1].value());
DateTime conv = DateTime.FromOADate(d);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With