|登录 |注册

查看: 1569|回复: 13
打印 上一主题 下一主题

麻烦楼主删帖

[复制链接]
Monki0115
2014-11-3 01:02 PM
本帖最后由 Monki0115 于 2014-11-21 02:36 PM 编辑

我用着visual studio 2013 ultimate.
我想update datagridview 里的data去已经存在的excel file.
因为会持续性的update,所以不可以固定rows 和 columns.


  1. If My.Computer.FileSystem.FileExists("d:\test1.xlsx") Then

  2.             Try

  3.                 Dim xls As New Excel.Application
  4.                 Dim Wbook As Excel.Workbook
  5.                 Dim Wsheet As Excel.Worksheet

  6.                 xls.Workbooks.Open("d:\test1.xlsx")
  7.                 Wbook = xls.ActiveWorkbook
  8.                 Wsheet = Wbook.ActiveSheet


  9.                 Dim i As Integer = 0

  10.                 If lastrow >= 10 Then
  11.                     Dim curRow As Integer = lastrow + 1
  12.                     For rowlength As Integer = 0 To DataGridView1.Rows.Count - 1
  13.                         For columnlength As Integer = 0 To DataGridView1.Columns.Count - 1
  14.                             Wsheet.Cells(curRow, columnlength + 1).Value =
  15.                                 DataGridView1.Rows(rowlength).Cells(columnlength).Value

  16.                         Next
  17.                     Next
  18.                 End If

  19.                 Wbook.Save()
  20.                 xls.closed()

  21.             Catch ex As Exception
  22.                 MsgBox(ex.ToString)
  23.             End Try
复制代码
Monki0115
2014-11-3 01:05 PM
问题是它会要求overwrite而不是update 原来的文件。
摆脱帮帮我
zechs
2014-11-3 02:08 PM
Wbook.DisplayAlerts = False

在save前加这句,试试看。
Monki0115
2014-11-3 02:22 PM
'DisplayAlerts ' on type 'Workbook' not found.
出现这个error ~ 不过还是谢谢你
zechs
2014-11-3 04:26 PM
xls.DisplayAlerts = False

这个呢?
Monki0115
2014-11-3 05:58 PM
一样 no found 哦 ~
燕子不会飞
2014-11-3 07:09 PM
试试看把lastrow 改成 objExcel.ActiveCell.Row + 1 看看

你需要的是不是只要有新data进来,就自动加新data不影响旧data???

我的理解能力比较不好

http://technet.microsoft.com/en-us/library/ee692869.aspx
Monki0115
2014-11-3 09:52 PM
你的意思是这样么?
我是把 lastrow dim as object 哦·
差不多意思,总之要把旧data保留,然后把新data加进去.
  1. If My.Computer.FileSystem.FileExists("d:\test1.xlsx") Then

  2.             Try

  3.                 Dim xls As New Excel.Application
  4.                 Dim Wbook As Excel.Workbook
  5.                 Dim Wsheet As Excel.Worksheet

  6.                 xls.Workbooks.Open("d:\test1.xlsx")
  7.                 Wbook = xls.ActiveWorkbook
  8.                 Wsheet = Wbook.ActiveSheet


  9.                 Dim i As Integer = 0

  10.                 If lastrow >= 10 Then
  11.                     Dim curRow As Integer = lastrow.ActiveCell.Row + 1
  12.                     For rowlength As Integer = 0 To DataGridView1.Rows.Count - 1
  13.                         For columnlength As Integer = 0 To DataGridView1.Columns.Count - 1
  14.                             Wsheet.Cells(curRow, columnlength + 1).Value =
  15.                                 DataGridView1.Rows(rowlength).Cells(columnlength).Value

  16.                         Next
  17.                     Next
  18.                 End If

  19.               
复制代码
可是还是有error

xx.PNG (17.43 KB, 下载次数: 22)

xx.PNG

TSHsoft
2014-11-3 11:38 PM
记录最后一笔资料是第几个row在第一个row或者一个特定地方,下次update的时候就读取最后一笔资料到哪个row了,然后再从那个row过后继续update咯~
tohkl14
2014-11-4 12:16 AM
你是用MICROSOFT的LIBRARY还是THIRD PARTY的?建议你用EPPLUS。。。
您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2026-1-1 10:36 AM , Processed in 0.091123 second(s), 24 queries .

Powered by Discuz! X2.5 © 2001-2012 Comsenz Inc.

本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved

Dedicated Server powered by iCore Technology Sdn. Bhd.

合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部