成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

讓你熟練掌握VB.NET Excel文件運用

開發 后端
這里為你介紹一個簡單而實用的合并VB.NET Excel文件的函數,能夠將多個XLS文件中指定數量的工作表自動合并到一個XLS文件里。

這個是我在工作中編寫的代碼中的一個小篇章,拿出來和大家分享一下,一個簡單而實用的合并VB.NET Excel文件的函數,能夠將多個XLS文件中指定數量的工作表自動合并到一個XLS文件里。當然,如果只是數據合并,則使用ADO就可以實現,但如果要保留表格格式,則恐怕只能使用俺的方法了。

一、VB.NET Excel文件函數代碼:

  1. view plaincopy to clipboardprint?  
  2. Option Explicit   
  3. Public Function MergeXlsFile(ByVal strPath As String, Optional ByVal SheetCount As Byte = 1) As Boolean  
  4. Dim i As Integer  
  5. Dim strSrcFile As String  
  6. Dim nRows As Long, nCols As Long, nSheets As Byte, nNewRows() As Integer  
  7. Dim xlApp As Object, xlSrcBook As Object, xlNewBook As Object, xlSheet As Object, xlRange As Object  
  8. On Error Resume Next  
  9. If Right(strPath, 1) <> "\" Then strPathstrPath = strPath & "\"   
  10. '如果需要合并文件中的工作表數量小于1則退出   
  11. If SheetCount < 1 Then Exit Function  
  12. '刪除掉該路徑下原來的合并文件   
  13. If Dir(strPath & "合并后的文件.xls") <> "" Then Kill strPath & "合并后的文件.xls"  
  14. '獲得第1個XLS文件   
  15. strSrcFile = Dir(strPath & "*.xls")   
  16. '如果文件不存在則退出   
  17. If Len(strSrcFile) = 0 Then Exit Function  
  18. '創建一個Excel實例   
  19. Set xlApp = CreateObject("Excel.Application")   
  20. '新建一個工作簿   
  21. Set xlNewBook = xlApp.Workbooks.Add   
  22. '調整新建工作簿里工作表的數量   
  23. ReDim nNewRows(1 To SheetCount)   
  24. For i = 1 To SheetCount - xlNewBook.Sheets.Count   
  25. xlNewBook.Sheets.Add , xlNewBook.Sheets(xlNewBook.Sheets.Count)   
  26. Next  
  27. '循環查找當前路徑下的所有XLS文件   
  28. Do  
  29. '打開找到的XLS文件   
  30. Set xlSrcBook = xlApp.Workbooks.Open(strPath & strSrcFile)   
  31. '循環復制源XLS文件里的工作表   
  32. nSheets = IIf(xlSrcBook.Sheets.Count < SheetCount, xlSrcBook.Sheets.Count, SheetCount)   
  33. For i = 1 To nSheets   
  34. Set xlSheet = xlSrcBook.Sheets(i)   
  35. '獲得源XLS文件中第i個工作表實際數據的行列數   
  36. nRows = xlSheet.UsedRange.Rows.Count   
  37. nCols = xlSheet.UsedRange.Columns.Count   
  38. '使用范圍對象粘貼源XLS文件數據到合并結果文件中   
  39. Set xlRange = xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(nRows, nCols))   
  40. xlRange.Select  
  41. xlRange.Copy   
  42. xlNewBook.Sheets(i).Cells(nNewRows(i) + 1, 1).PasteSpecial &HFFFFEFF8   
  43. '保存合并結果文件中第i個工作表的行數   
  44. nNewRows(i) = xlNewBook.Sheets(1).UsedRange.Rows.Count   
  45. Next  
  46. '關閉打開的源XLS文件   
  47. xlSrcBook.Close   
  48. '繼續查找下一個XLS文件   
  49. strSrcFile = Dir()   
  50. Loop Until Len(strSrcFile) = 0   
  51. '保存并關閉合并結果文件   
  52. xlNewBook.SaveAs strPath & "合并后的文件.xls"  
  53. xlNewBook.Close   
  54. '退出Excel實例   
  55. xlApp.Quit   
  56. '釋放資源   
  57. Erase nNewRows   
  58. Set xlRange = Nothing 
  59. Set xlSheet = Nothing 
  60. Set xlNewBook = Nothing 
  61. Set xlSrcBook = Nothing 
  62. If Err.Number = 0 Then MergeXlsFile = True 
  63. End Function  
  64. Option Explicit  
  65.  
  66. Public Function MergeXlsFile(ByVal strPath As String, Optional ByVal SheetCount As Byte = 1) As Boolean  
  67. Dim i As Integer  
  68. Dim strSrcFile As String  
  69. Dim nRows As Long, nCols As Long, nSheets As Byte, nNewRows() As Integer  
  70. Dim xlApp As Object, xlSrcBook As Object, xlNewBook As Object, xlSheet As Object, xlRange As Object  
  71.  
  72. On Error Resume Next  
  73. If Right(strPath, 1) <> "\" Then strPathstrPath = strPath & "\"  
  74. '如果需要合并文件中的工作表數量小于1則退出  
  75. If SheetCount < 1 Then Exit Function  
  76. '刪除掉該路徑下原來的合并文件  
  77. If Dir(strPath & "合并后的文件.xls") <> "" Then Kill strPath & "合并后的文件.xls"  
  78. '獲得第1個XLS文件  
  79. strSrcFile = Dir(strPath & "*.xls")  
  80. '如果文件不存在則退出  
  81. If Len(strSrcFile) = 0 Then Exit Function  
  82. '創建一個Excel實例  
  83. Set xlApp = CreateObject("Excel.Application")  
  84. '新建一個工作簿  
  85. Set xlNewBook = xlApp.Workbooks.Add  
  86. '調整新建工作簿里工作表的數量  
  87. ReDim nNewRows(1 To SheetCount)  
  88. For i = 1 To SheetCount - xlNewBook.Sheets.Count  
  89. xlNewBook.Sheets.Add , xlNewBook.Sheets(xlNewBook.Sheets.Count)  
  90. Next  
  91. '循環查找當前路徑下的所有XLS文件  
  92. Do  
  93. '打開找到的XLS文件  
  94. Set xlSrcBook = xlApp.Workbooks.Open(strPath & strSrcFile)  
  95. '循環復制源XLS文件里的工作表  
  96. nSheets = IIf(xlSrcBook.Sheets.Count < SheetCount, xlSrcBook.Sheets.Count, SheetCount)  
  97. For i = 1 To nSheets  
  98. Set xlSheet = xlSrcBook.Sheets(i)  
  99. '獲得源XLS文件中第i個工作表實際數據的行列數  
  100. nRows = xlSheet.UsedRange.Rows.Count  
  101. nCols = xlSheet.UsedRange.Columns.Count  
  102. '使用范圍對象粘貼源XLS文件數據到合并結果文件中  
  103. Set xlRange = xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(nRows, nCols))  
  104. xlRange.Select  
  105. xlRange.Copy  
  106. xlNewBook.Sheets(i).Cells(nNewRows(i) + 1, 1).PasteSpecial &HFFFFEFF8  
  107. '保存合并結果文件中第i個工作表的行數  
  108. nNewRows(i) = xlNewBook.Sheets(1).UsedRange.Rows.Count  
  109. Next  
  110. '關閉打開的源XLS文件  
  111. xlSrcBook.Close  
  112. '繼續查找下一個XLS文件  
  113. strSrcFile = Dir()  
  114. Loop Until Len(strSrcFile) = 0  
  115. '保存并關閉合并結果文件  
  116. xlNewBook.SaveAs strPath & "合并后的文件.xls"  
  117. xlNewBook.Close  
  118. '退出Excel實例  
  119. xlApp.Quit  
  120. '釋放資源  
  121. Erase nNewRows  
  122. Set xlRange = Nothing 
  123. Set xlSheet = Nothing 
  124. Set xlNewBook = Nothing 
  125. Set xlSrcBook = Nothing 
  126. If Err.Number = 0 Then MergeXlsFile = True 
  127. End Function   

二、VB.NET Excel文件調用方法:

  1. view plaincopy to clipboardprint?  
  2. Sub main()   
  3. If MergeXlsFile("c:\temp", 1) Then  
  4. MsgBox "數據已成功合并!", vbInformation, "提示"  
  5. Else  
  6. MsgBox "數據合并失敗!", vbCritical, "提示"  
  7. End If  
  8. End Sub  

【編輯推薦】

  1. 詳細分析VB.NET WithEvents
  2. 淺析VB.NET局部靜態變量
  3. 原理分析VB.NET開發控件
  4. 自己動手用代碼實現VB.NET ListView加載數據
  5. 詳細介紹VB.NET MyClass
責任編輯:田樹 來源: 博客
相關推薦

2009-11-02 10:30:37

VB.NET EXCE

2009-10-29 17:15:26

VB.NET控件

2010-01-11 14:28:14

VB.NET操作Exc

2009-11-02 10:42:04

VB.NET EXCE

2009-11-03 10:09:48

VB.NET對象

2009-11-03 13:54:55

VB.NET繼承

2009-10-29 16:29:02

VB.NET文件系統對

2009-11-02 11:02:58

VB.NET XML文

2009-10-28 15:01:59

VB.NET SHEL

2009-11-02 17:24:57

VB.NET語言

2009-11-10 16:27:45

VB.NET指針

2019-07-11 10:45:34

MQ中間件 API

2010-01-14 10:07:08

VB.NET文件名排序

2021-01-16 11:44:46

編程語言開發

2009-10-16 13:26:53

VB.NET Exce

2009-10-29 09:06:26

VB.NET Web

2020-01-09 08:26:16

代碼JS開發

2009-11-03 09:37:33

VB.NET重載

2009-10-29 13:38:05

VB.NET Shar

2010-01-14 13:59:01

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人a亚洲精品 | 99久久婷婷国产亚洲终合精品 | 久久久高清 | 在线观看深夜视频 | 日韩精品无码一区二区三区 | 69亚洲精品 | 日韩二 | 久久久久av| 欧美精品在线一区二区三区 | 欧美三区在线观看 | 婷婷色在线 | 欧美久久一区 | 亚洲交性 | 欧美久久不卡 | 一区二区免费视频 | 亚洲另类春色偷拍在线观看 | 久久精品福利视频 | 国产目拍亚洲精品99久久精品 | 色综合久久久 | 国产精品一区二区三区在线 | 6996成人影院网在线播放 | 国产亚洲精品久久午夜玫瑰园 | 欧美一区二区三区大片 | 亚洲一区二区三区四区五区中文 | 欧美日韩亚洲国产 | 精品1区2区3区4区 | 欧美激情一区二区三区 | 黄色av网站免费看 | 亚洲精品在线视频 | 日本超碰| 日韩成人免费 | 亚洲国产视频一区二区 | 亚洲成人免费 | 亚洲视频在线免费观看 | 午夜精品一区 | www.青娱乐 | 国产色99精品9i | 色婷婷亚洲一区二区三区 | 91亚洲国产成人久久精品网站 | 青青草精品视频 | 日本免费视频 |