當前位置:編程學習大全網 - 源碼下載 - 表格表格制作源代碼

表格表格制作源代碼

剛寫了壹個Helper類,妳試試DataTable2Exce(這個方法代碼如下:

進口系統。超正析象管(Image Orthicon)

進口系統。數據

進口系統。Data.OleDb

Public必須繼承類ExcelHelper

私有共享函數buildConnStr(excelFilePath As String)作為字符串

Dim excelFileInfo作為新系統。IO.FileInfo(excelFilePath)

Dim構造為字符串

如果excelFileInfo。擴展= "。xlsx”那麽

constr = String。Format("Provider=Microsoft。ACE . oledb . 12.0;數據源= { 0 };擴展屬性= ' Excel 12.0 Xml;HDR =是;IMEX=1 ' ",excelFilePath)

其他

constr = String。Format("Provider=Microsoft。Jet . OLEDB.4.0數據源= { 0 };擴展屬性= ' Excel 8.0HDR =是;IMEX=1 ' ",excelFilePath)

如果…就會結束

返回構造

結束功能

將數據表導入excel。

作為布爾值的公共共享函數DataTable2Excel(dt作為DataTable,excelFilePath作為String)

如果文件。存在(excelFilePath)

Thrownnewexception("該文件已經存在!")

如果…就會結束

如果dt。TableName.Trim.Length = 0或dt。TableName.ToLower = "table "然後

dt。TableName = "Sheet1 "

如果…就會結束

Dim colCount為Integer = dt。列數

Dim pa(colCount - 1)作為OleDb。OleDbParameter

dim tableStructStr As String = " Create Table " & amp;dt。表名& amp"("

dim connString As String = buildConnStr(excelFilePath)

Dim objconn作為新的OleDbConnection(connString)

Dim objcmd作為新OleDbCommand

objcmd。連接= objconn

Dim數據類型列表作為新的數組列表

數據類型列表。添加("系統。十進制”)

數據類型列表。添加("系統。雙倍”)

數據類型列表。添加("系統。Int16”)

數據類型列表。添加("系統。Int32”)

數據類型列表。添加("系統。Int64”)

數據類型列表。添加("系統。單身”)

Dim i為整數= 0

作為dt中的DataColumn。列

如果數據類型列表。IndexOf(col.GetType.ToString)>那麽0

pa(I)= New oledb parameter(" @ " & amp;col.ColumnName,OleDbType。雙倍)

objcmd。參數. Add(pa(i))

如果i + 1 = colCount,則

tableStructStr+= col . column name+" double)"

其他

tableStructStr+= col . column name+" double,"

如果…就會結束

其他

pa(I)= New oledb parameter(" @ " & amp;col.ColumnName,OleDbType。VarChar)

objcmd。參數. Add(pa(i))

如果i + 1 = colCount,則

tableStructStr+= col . column name+" VarChar)"

其他

tableStructStr+= col . column name+" VarChar,"

如果…就會結束

如果…就會結束

i += 1

然後

嘗試

objcmd。CommandText = tableStructStr

如果objconn。狀態=連接狀態。關閉然後關閉。打開()

objcmd。ExecuteNonQuery()

將ex作為異常捕獲

扔ex

結束嘗試

dim Insert SQL _ 1 As String = " Insert into "+dt。TableName +"("

Dim InsertSql_2 As String = " Values("

Dim InsertSql As String = " "

對於colID As Integer = 0到colCount - 1步驟1

如果colID + 1 = colCount,則

InsertSql_1 += dt。列(colID)。列名& amp")"

InsertSql_2 += "@" + dt。列(colID)。列名+" "

其他

InsertSql_1 += dt。列(colID)。列名+","

InsertSql_2 += "@" + dt。列(colID)。列名+","

如果…就會結束

然後

insert SQL = insert SQL _ 1+insert SQL _ 2

For rowID為Integer = 0到dt。行數.計數- 1步1

對於colID = 0至dt。列數- 1

如果pa(大腸桿菌)。DbType = DbType。Double和dt。rows(rowID)(colID). tostring . trim = " "然後

pa(大腸桿菌)。值= 0

其他

pa(大腸桿菌)。值= dt。rows(rowID)(colID). tostring . trim

如果…就會結束

然後

嘗試

objcmd。CommandText = InsertSql

objcmd。ExecuteNonQuery()

將ex作為異常捕獲

扔ex

結束嘗試

然後

嘗試

如果objconn。狀態=連接狀態。然後打開objconn。關閉()

將exp作為異常捕獲

投擲經驗

結束嘗試

返回True

結束功能

獲取Excel文件數據表列表

公共共享函數GetExcelTables(ExcelFileName作為String)作為ArrayList

將工作表調成新列表(字符串)

連接打開()

dim dt As DataTable = conn . GetOleDbSchemaTable(OleDbSchemaGuid。表格,無)

對於dt中的每個r。行

床單。Add(r("表名"))

然後

連接關閉()

退貨單

Dim dt作為數據表

如果不是文件。存在(ExcelFileName)則

Thrownnewexception("指定的Excel文件不存在")

不返回任何內容

如果…就會結束

Dim tableList作為新的數組列表

使用conn作為oledb connection = New oledb connection(buildConnStr(excel filename))

嘗試

連接打開()

dt = conn . GetOleDbSchemaTable(OleDbSchemaGuid。Tables,New Object(){無,無,無," TABLE"})

將ex作為異常捕獲

扔ex

結束嘗試

對於I為整數= 0到dt。行數。計數- 1

Dim tableName為String = dt。rows(I)(2). tostring . trim . trimend(" $ ")

If表列表。index of(tableName)& lt;0然後是表列表。添加(表名)

然後

結束使用

返回表列表

結束功能

將Excel文件導出到數據表(第壹行用作標題)

公共共享函數InputFromExcel(ExcelFileName作為字符串,TableName作為字符串)作為數據表

如果不是文件。存在(ExcelFileName)則

Thrownnewexception("指定的Excel文件不存在")

如果…就會結束

dim table list As ArrayList = get excel tables(excel filename)

If表列表。index of(TableName)& lt;那麽0

TableName = table list(0). tostring . trim

如果…就會結束

Dim dt作為新數據表

Dim conn作為新oledb connection(buildConnStr(excel filename))

dim cmd As New oledb command(" select * from[" & amp;表名& amp" $]",conn)'調試需要$?

Dim適配器作為新的OleDbDataAdapter(cmd)

嘗試

If conn.State = ConnectionState。關閉,然後連接打開()

適配器。填充(dt)

將ex作為異常捕獲

扔ex

最後

If conn.State = ConnectionState。打開,然後連接。關閉()

結束嘗試

返回dt

結束功能

查詢excel文件中的數據

公共共享函數ReadOneDataFromExcel(excel filename為字符串,TableName為字符串,sql為字符串)作為對象

如果不是文件。存在(ExcelFileName)則

Thrownnewexception("指定的Excel文件不存在")

如果…就會結束

dim table list As ArrayList = get excel tables(excel filename)

If表列表。index of(TableName)& lt;那麽0

TableName = table list(0). tostring . trim

如果…就會結束

Dim dt作為新數據表

Dim conn作為新oledb connection(buildConnStr(excel filename))

Dimcmd as new ole command (SQL,conn)'調試需要$嗎?

Dim ret作為對象

嘗試

If conn.State = ConnectionState。關閉,然後連接打開()

ret = cmd。ExecuteScalar()

將ex作為異常捕獲

扔ex

最後

If conn.State = ConnectionState。打開,然後連接。關閉()

結束嘗試

返回ret

結束功能

獲取Excel文件中指定數據表的數據列表列名。

公共共享函數GetExcelTableColumns(excel filename作為字符串,TableName作為字符串)作為ArrayList

Dim dt作為數據表

如果不是文件。存在(ExcelFileName)則

Thrownnewexception("指定的Excel文件不存在")

不返回任何內容

如果…就會結束

Dim ColList作為新的數組列表

使用conn作為oledb connection = New oledb connection(buildConnStr(excel filename))

嘗試

連接打開()

dt = conn . GetOleDbSchemaTable(OleDbSchemaGuid。Columns,New Object() {Nothing,Nothing,TableName,Nothing})

將ex作為異常捕獲

扔ex

結束嘗試

對於I為整數= 0到dt。行數。計數- 1

Dim ColName = dt。行(I)(“列名”)。ToString()。修剪()

科利斯特。添加(列名)

然後

結束使用

返回碰撞列表

結束功能

結束類

  • 上一篇:開源軟件(OSS)運動、基金會的由來及發展
  • 下一篇:我開個彩票店,刮刮樂每月有指標麽?
  • copyright 2024編程學習大全網