示例:
“美国介入性疼痛医师协会指导委员会成员,2006年至今” 会成为... “美国介入性疼痛医师协会指导委员会成员” 和“2006年至今”
我想知道: A)什么语言最适合这个,如何解析或拆分,如何从Excel电子表格(而不是简单的文本框或console.read)中取出,然后放回到Excel中,在两个不同的细胞中。
答案 0 :(得分:2)
由于您使用的是Excel,因此最好使用VBA。下面是一些代码,它们将遍历A列中的每个单元格,并将它们分成第一个数字。
Sub SplitCells()
Dim i As Long
Dim j As Long
Dim lastRow As Long
Dim currentValue As String
lastRow = cells(Rows.count, "A").End(xlUp).row
For i = lastRow To 1 Step -1
currentValue = cells(i, "A").Value
For j = 1 To Len(currentValue)
If IsNumeric(Mid$(currentValue, j, 1)) = True Then
cells(i + 1, "A").EntireRow.Insert
cells(i, "A").Value = Left$(currentValue, j - 1)
cells(i + 1, "A").Value = Mid$(currentValue, j)
Exit For
End If
Next
Next
End Sub
工作原理:向后循环列是非常重要的,因此当您插入行时,您不会弄乱循环。它只是查看每个单元格中的第一个数值,当它找到一个时,它会将其拆分,将数值放在新行之后,将该部分从当前单元格中删除。你可以改变你想要的范围。
答案 1 :(得分:0)
使用C# - 声明一个类似这样的类
public class Info
{
private string _status;
private string _committee;
private string _comName;
private string _dateperiod;
public string getFormattedvalue
{
get
{
return _status +", "+
_committee +", "+
_comName;
}
}
public string formattedDate
{
get
{
return _dateperiod;
}
}
public Info(string input)
{
string[] s = input.Split(',');
_status = s[0];
_committee = s[1];
_comName = s[2];
_dateperiod = s[3];
}
}