C#导出EXCEL时写公式如何转义

mislrb 2016-08-22 04:59:43
C#转义后写到EXCEL的公式不正确,如何将转义的再反转回去呢?
原语句:((Excel.Range)mSheet.Cells[I, J]).FormulaR1C1 = "=SUMIF(R7C" + (iRowLn + 5).ToString() + ":R" + (iDefCode + 6).ToString() + "C" + (iRowLn + 5).ToString() + ",LEFT(RC[-" + (J - 1).ToString() + "],1)" + " & \"G\",R[-" + (I - 7).ToString() + "]C:R[-" + (I - iDefCode - 6).ToString() + "]C)", 重点在\"G\"拼凑子字串AG等,(这里用于判断原始数据中次品代码AG开头,4G开头,1G开头)
实现如下的:
A - Defect(G) 442
4 - Defect(G) 85
1 - Defect(G) 169
2 - Defect(G) 72
3 - Defect(G) 1
A - Defect 99
4 - Defect 84
1 - Defect 24
2 - Defect 112
3 - Defect 16
A - PPM 548
4 - PPM 464
1 - PPM 133
2 - PPM 619
3 - PPM 89
FPY(Cal. As PPM) 1167
GType PPM 4242
G002 PPM 519
G003 PPM 243
G004 PPM 712
G011 PPM 552
G012 PPM 2218

但是C#得到的结果为:"=SUMIF(R7C145:R189C145,LEFT(RC[-1],1) & \"G\",R[-185]C:R[-3]C)",到这里前面的语法都是符合C#的,但C#的这个结果赋值给:((Excel.Range)mSheet.Cells[I, J]).FormulaR1C1 时则会导致EXCEL出错,问题出在转义后不能得到带双引号的字符"G",有人能帮忙看看究竟怎么转。

...全文
243 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mislrb 2016-08-22
  • 打赏
  • 举报
回复
上面公式语法在VB中一直使用是OK的,输出到EXCEL里公式类似:=SUMIF($DE$7:$DE$67,LEFT(A70,1) & "G",B7:B67)

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧