问题描述
我有一个电子表格,其文本类似于294735-9。我需要在电子表格中获取所有不带破折号的元素。
Method invocation Failed because [System.Object[]] does not contain a method named 'op_Addition'.
我有一个C#代码方案,我需要在电子表格外壳中打印此公式,但不会打印双引号,而只会打印-。这导致异常。我也尝试过Add-Type -AssemblyName "System.Windows.Forms";
Add-Type -AssemblyName "System.Drawing";
$main_form = new-object System.Windows.Forms.Form;
$labels = @();
for( $i=0; $i -lt 5; $i++ )
{
$label = new-object System.Windows.Forms.Label;
$label.BackColor = "Orange";
$label.Location = new-object System.Drawing.Point(10,($i * 25));
$label.Text = $i.ToString();
$labels += $label;
$main_form.Controls.Add($label);
}
$main_form.ShowDialog();
,但仍然没有运气。
A1 A2
294735-9 =left(A1,find("-",A1)-1) this is a excel formula to get 294735
解决方法
当您将公式从Excel复制到C#时,该公式似乎已损坏。
string with_dash = $"=left({xlWorkSheet.Cells[rowCounter + 1,3]},find(\"-\",{xlWorkSheet.Cells[rowCounter + 1,3]})-1)";
xlWorkSheet.Cells[rowCounter + 1,ColumnCounter] = with_dash;