dim wb as Excel.Workbook
dim exApp as New Excel.Application
dim exSheet as Excel.Worksheet
dim rowNum as integer = 1
wb = System.Runtime.InteropServices.Marshal.BindToMoniker(pathAndFileNameOfCSV)
exApp = wb.Parent
exApp.DisplayAlerts = False
exApp.AlertBeforeOverwriting = False
exSheet = exApp.ActiveWorkbook.Sheets.Item(1)
'do your functions in a loop here i.e.
exSheet.Range("A" & rowNum).Value = "=SUM($A$1:$D$4)"
rowNum += 1
wb.Close (True) 'closes and saves
7条答案
按热度按时间ig9co6j11#
1,2,3,=SUM(A1:C1)
当我尝试的时候让我很惊讶,但是Excel会保留公式。
您甚至可以将公式导出到CSV中,方法是首先在屏幕上显示它们。(Ctrl-`)
des4xlb02#
虽然我坚持认为我最初的答案在技术上是正确的,但我已经得到了很多反对票。显然流行的电子表格软件,如Microsoft Excel,Open Office,Libre Office Calc将计算输入CSV文件的公式。但是,我仍然不建议依赖这种能力。
原始答案:
CSV格式不支持公式。它是纯文本格式。
fcy6dtqo3#
您可以通过文本文件使用逗号分隔值将公式导入Excel。只需记住确保它的名称带有后缀. txt。
然后进行导入。
我的示例导入(数据表,从文本)
列1、列2、结果列
1,2,=A2+B2
它导入并计算得很好
p1iqtdky4#
您是否正在生成CSV文件?如果是这样,请考虑编写一个实际的Excel文件。(我假设你正在导入Excel,因为你使用了术语“单元格”,这在CSV中没有意义。
这里有一个关于如何做到这一点的链接:从C#创建Excel(.XLS和.XLSX)文件
如果你没有生成CSV,如果你想要的只是添加一个新的计算值,(而不是一个会随着单元格值的变化而动态变化的公式),你可以很容易地做到这一点,通过阅读CSV文件,解析每一行以获得公式所需的值,计算结果,并在将该行写入新文件之前将其附加(逗号后)到每一行。
shstlldc5#
您可以在Excel中打开csv,然后将公式添加到Excel并保存回csv。您可以使用Microsoft Excel 11.0对象库来完成此操作。然后
保存工作簿应在关闭时将公式转换回值。
suzh9iv86#
在Excel中,要导入带逗号的公式,公式必须用双引号封装,以防止公式在单元格中分散。举例来说:
2,4,6,13,=sum(A1:C1),"=if(A1=C1,D1-A1,D1+A1)”
Excel的另一个怪癖是,如果您有一个完全由数字组成的字符串,则必须将其表示为保留前导零的公式。“00012345”导入为12345,忽略引号。要作为文本导入,.CSV文件必须将其显示为=“00012345”。
9njqaruj7#
它实际上确实可以在csv中插入公式,只要确保'='符号前没有空格,并尽量避免在公式内部使用逗号','。。