Vb.net DataGridView到Excel-数字另存为文本
我有一个VB.Net表单,允许我将Vb.net DataGridView到Excel-数字另存为文本,vb.net,excel,datagridview,Vb.net,Excel,Datagridview,我有一个VB.Net表单,允许我将DataGridView保存为Excel,但它将数字保存为文本。这意味着饼图和其他东西不会“刷新”。 我应该在VB代码中用数字格式化列,还是有其他方法将数字另存为数字 有一次我使用了一个Excel模板,其中的DataGridView值将转到现有文件。我以为它们的格式会和单元格的格式一样 这是我正在使用的代码的一部分 Private Sub ButtonExport_Click(sender As Object, e As EventArgs) Handles B
DataGridView
保存为Excel,但它将数字保存为文本。这意味着饼图和其他东西不会“刷新”。
我应该在VB代码中用数字格式化列,还是有其他方法将数字另存为数字
有一次我使用了一个Excel模板,其中的DataGridView
值将转到现有文件。我以为它们的格式会和单元格的格式一样
这是我正在使用的代码的一部分
Private Sub ButtonExport_Click(sender As Object, e As EventArgs) Handles ButtonExport.Click
Dim exeDir As New IO.FileInfo(Reflection.Assembly.GetExecutingAssembly.FullName)
Dim xlPath = IO.Path.Combine(exeDir.DirectoryName, "template.xlsx")
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Integer
Dim j As Integer
xlApp = New Microsoft.Office.Interop.Excel.Application
xlWorkBook = xlApp.Workbooks.Open(xlPath)
xlWorkSheet = xlWorkBook.Worksheets("data")
For i = 0 To DataGridView1.RowCount - 1
For j = 0 To DataGridView1.ColumnCount - 1
For k As Integer = 1 To DataGridView1.Columns.Count
xlWorkSheet.Cells(i + 1, j + 4) = DataGridView1(j, i).Value
Next
Next
Next
xlWorkSheet.SaveAs("C:\Users\User\Desktop\" & TextBox3.Text & ".xlsx")
xlWorkBook.Close()
xlApp.Quit()
Me.Close()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
End Sub
我已经尝试了
DataGridView1.Columns(2).ValueType=GetType(Decimal)
,但它什么也没做。OP再次回答:D
For i = 0 To DataGridView2.RowCount - 1
For j = 0 To DataGridView2.ColumnCount - 1
Dim val As Object = DataGridView2(2, i).Value
If IsDBNull(val) Then
xlWorkSheet.Cells(i + 1, 3) = Nothing
Else
xlWorkSheet.Cells(i + 1, 3) = CDbl(val)
End If
Next
Next
看起来您正在使用名为“数据”的工作表打开现有工作簿。该表中的单元格格式是否为数字?设置列的格式可能很有趣(尽管我看到失败了)——在添加值时,是否尝试设置每个单元格(列2中)的格式?每个单元格都可以有自己的格式,因此可能有什么东西阻止了列级分配的工作,因为单元格已经存在。起初我认为它可以工作。我失败了,哈哈。不,我没试过。你的意思是像
xlsheetwork.Cells(i+1,j+4)=DataGridView1(j,i).Value.type(decimal)
?@SteveBarron我找不到实现它的方法。每次我写“十进制”时,它就变成“十进制的”。。所以我使用了错误的语法。思想?