我不知道为什么我很难为这个简单的任务找到示例,但是根据我的 Google-Fu 技能,没有任何显示。我正在寻找使用 OpenXML 和 VB.Net 修改现有电子表格单元格的示例。
我想将现有值更改为新值,不涉及任何公式。
这是我所拥有的:
Public Sub Main()
Dim strSource, strSheetName As String
Dim dtPeriod As DateTime
strSource = Dts.Variables("sFilePath").Value
'set period to previous month. We only care about the year in this period as the data will be reloaded
'from the file each month
dtPeriod = DateAdd(DateInterval.Month, -1, Today)
Dts.Variables("dtPeriod").Value = dtPeriod
Using mySpreadSheet As SpreadsheetDocument = SpreadsheetDocument.Open(strSource, True)
Dim WorkbookSheets As Sheets
WorkbookSheets = mySpreadSheet.WorkbookPart.Workbook.GetFirstChild(Of Sheets)()
For Each childSheet As Sheet In WorkbookSheets
strSheetName = childSheet.Name
strSheetName = strSheetName.ToLower.Trim
If strSheetName = "sheet1" Then 'process sheet
SetCellValue("A1", "Last Name")
SetCellValue("B1", "First Name")
SetCellValue("C1", "RegionID")
SetCellValue("D1", "RegionName")
'rename sheet for loading
childSheet.Name = "RegionData"
End If
Next
mySpreadSheet.WorkbookPart.Workbook.Save()
mySpreadSheet.Close()
End Using
End Sub
Private Sub SetCellValue(ByVal loc As String, ByVal Val As String)
Dim cell As Cell = New Cell
cell.CellReference = loc
cell.DataType = CellValues.String
cell.CellValue = New CellValue(Val)
End Sub
我确信这很简单,例如确保单元格引用正确的工作表,但我发现的所有示例都是用于创建新工作表。
谢谢