有没有一种方法可以使用vb.net?以编程方式将公式插入csv文件

pprl5pva  于 11个月前  发布在  .NET
关注(0)|答案(7)|浏览(127)

我需要将公式添加到已存在的CSV文件中。用VB.Net可以做到这一点吗?
这个想法是我已经有一个CSV文件,我需要一个列来填充在每个单元格与自定义公式。这必须以编程方式完成,因为这些文件是动态创建的。
有人知道怎么做吗?谢谢.

ig9co6j1

ig9co6j11#

1,2,3,=SUM(A1:C1)
当我尝试的时候让我很惊讶,但是Excel会保留公式。
您甚至可以将公式导出到CSV中,方法是首先在屏幕上显示它们。(Ctrl-`)

des4xlb0

des4xlb02#

虽然我坚持认为我最初的答案在技术上是正确的,但我已经得到了很多反对票。显然流行的电子表格软件,如Microsoft Excel,Open Office,Libre Office Calc将计算输入CSV文件的公式。但是,我仍然不建议依赖这种能力。

原始答案:

CSV格式不支持公式。它是纯文本格式。

fcy6dtqo

fcy6dtqo3#

您可以通过文本文件使用逗号分隔值将公式导入Excel。只需记住确保它的名称带有后缀. txt。
然后进行导入。
我的示例导入(数据表,从文本)
列1、列2、结果列
1,2,=A2+B2
它导入并计算得很好

p1iqtdky

p1iqtdky4#

您是否正在生成CSV文件?如果是这样,请考虑编写一个实际的Excel文件。(我假设你正在导入Excel,因为你使用了术语“单元格”,这在CSV中没有意义。
这里有一个关于如何做到这一点的链接:从C#创建Excel(.XLS和.XLSX)文件
如果你没有生成CSV,如果你想要的只是添加一个新的计算值,(而不是一个会随着单元格值的变化而动态变化的公式),你可以很容易地做到这一点,通过阅读CSV文件,解析每一行以获得公式所需的值,计算结果,并在将该行写入新文件之前将其附加(逗号后)到每一行。

shstlldc

shstlldc5#

您可以在Excel中打开csv,然后将公式添加到Excel并保存回csv。您可以使用Microsoft Excel 11.0对象库来完成此操作。然后

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

保存工作簿应在关闭时将公式转换回值。

suzh9iv8

suzh9iv86#

在Excel中,要导入带逗号的公式,公式必须用双引号封装,以防止公式在单元格中分散。举例来说:
2,4,6,13,=sum(A1:C1),"=if(A1=C1,D1-A1,D1+A1)”
Excel的另一个怪癖是,如果您有一个完全由数字组成的字符串,则必须将其表示为保留前导零的公式。“00012345”导入为12345,忽略引号。要作为文本导入,.CSV文件必须将其显示为=“00012345”。

9njqaruj

9njqaruj7#

它实际上确实可以在csv中插入公式,只要确保'='符号前没有空格,并尽量避免在公式内部使用逗号','。。

相关问题