如何用VB.NET和Open XML在Excel 2010工作表中添加公式?

2026-05-06 09:091阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计362个文字,预计阅读时间需要2分钟。

如何用VB.NET和Open XML在Excel 2010工作表中添加公式?

使用Visual Studio 2010(VB.Net)和Open XML SDK 2.0,将公式插入Excel 2010工作表时,可以这样操作:

1. 创建一个新的Excel工作簿。

2.使用Open XML SDK定位到目标单元格。

如何用VB.NET和Open XML在Excel 2010工作表中添加公式?

3.将公式设置到单元格的Value属性。

4.设置单元格格式的Value属性为DBNull或EmptyString,以确保在用户打开工作簿时公式重新计算。

例如:

vb

Imports DocumentFormat.OpenXml.PackagingImports DocumentFormat.OpenXml.Spreadsheet

Module Module1 Sub Main() Dim filePath As String=C:\path\to\your\workbook.xlsx Dim workbook As WorkbookPart=Nothing Dim sheet As SheetPart=Nothing Dim cell As Cell=Nothing

Try ' 打开工作簿 workbook=SpreadsheetDocument.Open(filePath, True) sheet=workbook.WorkbookPart.GetSheetPart(1)

' 定位到目标单元格 cell=sheet.Worksheet.Descendants().Where(Function(c) c.CellReference=A1).First()

' 设置公式 cell.Value==SUM(A1:A10)

' 设置单元格格式的Value属性为DBNull,强制重新计算 Dim cellStylePart As CellStylePart=workbook.WorkbookPart.WorkbookStylesPart.AddNew() Dim cellFormat As CellFormat=cellStylePart.AddNewCellFormat() cellFormat.Value=CellValues.Blank cellFormat.StyleId=0

' 保存工作簿 workbook.Save()

Catch ex As Exception Console.WriteLine(Error: & ex.Message) Finally If workbook IsNot Nothing Then workbook.Close() End If End Try End SubEnd Module

我正在使用Visual Studio 2010(VB.Net)和Open XML SDK 2.0.如何将公式插入Excel 2010工作表?当我这样做时,我还希望将单元格的CellValue属性设置为DBNull或EmptyString,以强制Excel在用户打开workbok时重新计算单元格. 只需将CellValue保留为null,并实例化一个新的CellFormula,如下所示:

Cell cell = new Cell() { CellReference = "A3", DataType = new EnumValue<CellValues>(CellValues.Number), CellFormula = "SUM(A1:A2)" };

在Excel中打开文档时将计算单元格值

本文共计362个文字,预计阅读时间需要2分钟。

如何用VB.NET和Open XML在Excel 2010工作表中添加公式?

使用Visual Studio 2010(VB.Net)和Open XML SDK 2.0,将公式插入Excel 2010工作表时,可以这样操作:

1. 创建一个新的Excel工作簿。

2.使用Open XML SDK定位到目标单元格。

如何用VB.NET和Open XML在Excel 2010工作表中添加公式?

3.将公式设置到单元格的Value属性。

4.设置单元格格式的Value属性为DBNull或EmptyString,以确保在用户打开工作簿时公式重新计算。

例如:

vb

Imports DocumentFormat.OpenXml.PackagingImports DocumentFormat.OpenXml.Spreadsheet

Module Module1 Sub Main() Dim filePath As String=C:\path\to\your\workbook.xlsx Dim workbook As WorkbookPart=Nothing Dim sheet As SheetPart=Nothing Dim cell As Cell=Nothing

Try ' 打开工作簿 workbook=SpreadsheetDocument.Open(filePath, True) sheet=workbook.WorkbookPart.GetSheetPart(1)

' 定位到目标单元格 cell=sheet.Worksheet.Descendants().Where(Function(c) c.CellReference=A1).First()

' 设置公式 cell.Value==SUM(A1:A10)

' 设置单元格格式的Value属性为DBNull,强制重新计算 Dim cellStylePart As CellStylePart=workbook.WorkbookPart.WorkbookStylesPart.AddNew() Dim cellFormat As CellFormat=cellStylePart.AddNewCellFormat() cellFormat.Value=CellValues.Blank cellFormat.StyleId=0

' 保存工作簿 workbook.Save()

Catch ex As Exception Console.WriteLine(Error: & ex.Message) Finally If workbook IsNot Nothing Then workbook.Close() End If End Try End SubEnd Module

我正在使用Visual Studio 2010(VB.Net)和Open XML SDK 2.0.如何将公式插入Excel 2010工作表?当我这样做时,我还希望将单元格的CellValue属性设置为DBNull或EmptyString,以强制Excel在用户打开workbok时重新计算单元格. 只需将CellValue保留为null,并实例化一个新的CellFormula,如下所示:

Cell cell = new Cell() { CellReference = "A3", DataType = new EnumValue<CellValues>(CellValues.Number), CellFormula = "SUM(A1:A2)" };

在Excel中打开文档时将计算单元格值