gpt4 book ai didi

c# - 替换excel文件一列中的字符

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:56 25 4
gpt4 key购买 nike

我正在读取 Excel 文件中的特定列并尝试更改其中的值。该文件有如下记录

12345*5
12445*6
12312*9

我想用“_”替换“*”。

我收到以下错误 '无法将类型 'object[*,*]' 隐式转换为 'string[*,*]'。存在显式转换(是否缺少强制转换?)'

我已在线查看错误,但无法修复此错误。

    static void Main(string[] args)
{
var xlApp = new Excel.Application();
var xlWorkbook = xlApp.Workbooks.Open(@"path");
var xlWorksheet = xlWorkbook.Sheets[1];

Excel.Range xlRange = xlWorksheet.UsedRange;

ChangeValue(xlWorksheet);
}

private static void ChangeValue(Excel.Worksheet oWorksheet)
{

var colNo = oWorksheet.UsedRange.Columns.Count;
var rowNo = oWorksheet.UsedRange.Rows.Count;

string[,] array = oWorksheet.UsedRange.Value;
for (var j = 1; j <= colNo; j++)
{
for (var i = 1; i <= rowNo; i++)
{
if (array[i, j] == "Number Field")
{
for (var m = i + 1; m < rowNo; m++)
{
if(array[m, j].Contains('*'))
{
array[m, j].Replace('*', '_');
}
}
oWorksheet.UsedRange.Value = array;
return;
}
}
}
}

最佳答案

您正在使用的属性,Range.Value , 不是一个简单的二维字符串数组。这就是你收到错误的原因。它返回一个可能有值的 XML 对象,在这种情况下,您需要将这些值显式转换为字符串,然后才能将它们存储在 string 数组中。

由于您是按列和行进行迭代的,因此在检查条件或获取值时,最好将其转换为字符串而不分配新对象。我还没有测试过,但这样的事情可能会奏效:

oWorksheet.UsedRange.Value[i, j].ToString() == "数字字段"

关于c# - 替换excel文件一列中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48568365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com