我正在尝试将某些计算值从MS excel复制到记事本。但是它获取空值。有人可以检查并帮助我解决此问题吗?
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
workbook = xls.Workbooks.Open(filereader & "excelfilename.xls")
worksheet = workbook.Worksheets(1)
Dim Datawriter As New StreamWriter(filereader & "FiletoCopy.txt")
Dim range1 As Excel.Range
Dim range2 As Excel.Range
Dim range3 As Excel.Range
Dim range4 As Excel.Range
Dim range5 As Excel.Range
Dim CellValue1 As String
Dim CellValue2 As String
Dim CellValue3 As String
Dim CellValue4 As String
Dim CellValue5 As String
range1 = CType(worksheet, Excel.Worksheet).Range(“A1”)
range2 = CType(worksheet, Excel.Worksheet).Range(“A2”)
range3 = CType(worksheet, Excel.Worksheet).Range(“A3”)
range4 = CType(worksheet, Excel.Worksheet).Range(“A4”)
range5 = CType(worksheet, Excel.Worksheet).Range(“A5”)
CellValue1 = Math.Round((range1.Value), 2)
CellValue2 = Math.Round((range2.Value), 2)
CellValue3 = Math.Round((range3.Value), 2)
CellValue4 = Math.Round((range4.Value), 2)
CellValue5 = Math.Round((range5.Value), 2)
Datawriter.WriteLine(CellValue1, vbCrLf)
Datawriter.WriteLine(CellValue2, vbCrLf)
Datawriter.WriteLine(CellValue3, vbCrLf)
Datawriter.WriteLine(CellValue4, vbCrLf)
Datawriter.WriteLine(CellValue5, vbCrLf)
Datawriter.Close()
MessageBox.Show("Output Generated Sucessfully", "Success", MessageBoxButtons.OK)
End Sub
我更改了您的工作表和工作簿的名称。我只是不喜欢与类名同名的变量。]>
我使用了Path.Combine
,所以我不必担心是否存在反斜杠。
我创建并填写了包含您电子表格中值的双打列表。
我正在使用字符串生成器来构建要保存的文本。与字符串不同,StringBuilder
是可变的(可变的)。每个字符串都必须丢弃,否则将创建一个新字符串。
我使用了File
中的System.IO
类来创建和写入文件。
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim filereader = "C:\SomeFolder\"
Dim wbook = xls.Workbooks.Open(Path.Combine(filereader, "excelfilename.xls"))
Dim wsheet As Excel.Worksheet = CType(wbook.Worksheets(1), Excel.Worksheet)
Dim lstDoubles As New List(Of Double) From {
CDbl(wsheet.Range("A1").Value),
CDbl(wsheet.Range("A2").Value),
CDbl(wsheet.Range("A3").Value),
CDbl(wsheet.Range("A4").Value),
CDbl(wsheet.Range("A5").Value)
}
'StringBuilder requires Imports System.Text
Dim sb As New StringBuilder
For Each d In lstDoubles
Dim roundedString = Math.Round(d, 2).ToString
sb.AppendLine(roundedString)
Next
File.WriteAllText(Path.Combine(filereader, "FiletoCopy.txt"), sb.ToString)
MessageBox.Show("Output Generated Sucessfully", "Success", MessageBoxButtons.OK)
End Sub