【问题标题】:replace excel cell values in C# windows application在 C# windows 应用程序中替换 excel 单元格值
【发布时间】:2012-10-17 03:51:08
【问题描述】:

我有一个 excel 模板,其中我们有不同的预定义字段,例如 CustomerName、CompanyName、Address 等。所有这些都在一个单元格中,这个单元格被命名为“客户”,同样我们还有另一个单元格叫做“发件人”有与发件人详细信息相关的字段。我的工作是找到客户和发件人单元格并将它们包含的值替换为实际值,例如我需要找到“客户”单元格并将客户名称替换为实际名称“约翰”,将 ComanyName 替换为“XYZ”等等对于其他领域,同样的任务适用于 Sender Cell。

我正在使用 Microsoft.Office.Interop.Excel 来执行此任务,如下所示。

xlWorkSheet.Cells.Replace("CustomerName", "John", Excel.XlLookAt.xlPart,missingValue,missingValue,missingValue,missingValue,missingValue);

xlWorkSheet.Cells.Replace("CompanyName", "XYZ", Excel.XlLookAt.xlPart,missingValue,missingValue,missingValue,missingValue,missingValue);

问题是单个单元格中的所有这些字段,我需要找到不同的字段并替换它们的值,如果字段值不是然后将剩余的字段向上移动以填充空白空间。

请提供解决方案。

【问题讨论】:

标签: c# vb.net excel replace find


【解决方案1】:

我会将数据拉入一个字符串,进行字符串操作,然后将其设置回单元格值...

Dim StrToReplace as string = xlWorkSheet.Range("Customer").value

StrToReplace = StrToReplace.replace("CustomerName", "John")
StrToReplace = StrToReplace.replace("CompanyName", "XYZ")
... etc

xlWorkSheet.Range("Customer").value = StrToReplace

您可以通过不在多行上重复 StrToReplace.replace 来提高效率,例如:

StrToReplace = StrToReplace.replace("CustomerName", "John").replace("CompanyName", "XYZ")

或者,也许使用字符串生成器,但这至少应该为您指明解决当前问题的正确方向。

希望对你有帮助

【讨论】:

  • 嗨约翰,感谢您的快速回复,一个问题是在 excel 单元格字段中是这样的 CustomerName \new line CustomerCompanyName \new line AddressLine1 \new line AddressLine2 所以当我将字符串复制到单元格时,它将在一行中,而不是上面给出的,我们如何解决这个问题?
  • 我不确定我是否 100% 理解您在说什么,但如果您想在单元格中添加换行符,只需在您的替换语句中添加换行符即可。例如:StrToReplace.replace("CustomerName", "John" & vblf)
猜你喜欢
  • 2012-10-06
  • 2012-10-17
  • 2013-09-10
  • 1970-01-01
  • 2013-11-02
  • 2019-03-27
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多