我有一个字符串,格式如下:
StockCode Country Date Price equity
Run Code Online (Sandbox Code Playgroud)
例如:
1 hk 10/31/12 C70.5 equity101 hk 11/21/13 P63 equity388 hk 10/17/12 P100 equity我可以通过这个Excel命令提取日期:
LEFT(RIGHT(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)),
LEN(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))-FIND(" ",
RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))),FIND(" ",
RIGHT(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)),
LEN(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))-FIND(" ",
RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1))))))
Run Code Online (Sandbox Code Playgroud)
(换行符换行)
结果: 10/31/12
任何人都有更好的解决方案吗?
这是我的一些代码:
如何获得"C"和"P":
TRIM(MID(A1,IFERROR(FIND("P",A1),FIND("C",A1)),1))
Run Code Online (Sandbox Code Playgroud)如何获得执行价格:
TRIM(SUBSTITUTE(RIGHT(A1,LEN(A1)-IFERROR(FIND("P",A1),
FIND("C",A1))),"equity",""))
Run Code Online (Sandbox Code Playgroud)我有一个ac#program需要创建一个excel对象,并做一些操作,这里是我的代码的一部分:
// 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
Run Code Online (Sandbox Code Playgroud)
那么如何让输出再次成为"2012/9/20"?
我尝试了一些代码,但失败了:
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
Run Code Online (Sandbox Code Playgroud)