小编lit*_*758的帖子

使用Excel拆分字符串

我有一个字符串,格式如下:

StockCode Country Date Price equity
Run Code Online (Sandbox Code Playgroud)

例如:

  • 1 hk 10/31/12 C70.5 equity
  • 101 hk 11/21/13 P63 equity
  • 388 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

任何人都有更好的解决方案吗?

这是我的一些代码:

excel split

10
推荐指数
1
解决办法
4万
查看次数

如何在Excel和c#之间将"double"转换为"datetime"

我有一个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)

c# excel datetime

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

excel ×2

c# ×1

datetime ×1

split ×1