c 針對excel有合併行,匯入資料庫

2021-05-05 17:13:09 字數 1609 閱讀 9705

根據配置檔案 將excel中資料讀入目標結構的dataset,並對合併單元格作處理

1、類設計,excel要據配置讀入dataset

using system;

using system.data;

using system.collections;

using system.data.oledb;

namespace hkh.common

datarow sqlnewrow = dstarget.tables[0].newrow();

//如果當前行當前列為空

if (convert.isdbnull(excelrow[excelcolindex]))

}else

//呼叫匯入後資料處理,並根據返回值決定下一步處理

if (importingafter(ref sqlnewrow))

}return true;

}catch(exception ex)

}#endregion

#region 受保護的虛函式,子類須重寫

///

/// 在匯入前對excel行資料進行處理

///

/// 正在讀取的當前excel行

/// true -- 繼續處理,false -- 跳過當前行

///

protected virtual bool importingbefore(ref datarow drexcelrow)

///

/// 在資料轉存後對當前行進行處理

///

/// 已經轉存資料的當前sql行

/// true -- 繼續處理,false -- 跳過當前行

///

protected virtual bool importingafter(ref datarow drsqlrow)

#endregion

#region 私有方法

///

/// 載入配置檔案,取得表和列的對映

///

///

if (dsmaping.tables.count == 0)

if (tablemap.length != 1)

if ( colmap.length <= 0)

return true;

}catch

}///

/// 計算excel中列標題對應的索引 (a = 0 )

///

///

///

private int execcolumnindex( string strcolumntitle )

else

}#endregion}}

2、配置檔案xsd

3、 配置檔案樣例

excelsheet ----要匯入資料庫的excel檔案中的工作薄名

sqltable---要匯入的資料庫表名

excelcol--excel表中列標頭

sqlcol--sql資料庫中列名

inherit---當excel中有**合併時,是否繼續上面的單元格值,此處用於拆解單元格,本處指合併行,true為拆解,即所有單元格都以合併值填充,為false則第一行為填充值,其它各行以空填充

C 方法將資料匯入Excel

c 操作excel 在伺服器端導資料,將excel當做ole db資料庫 用oledb 的方法將 datatable 的內容寫入指定的 excel檔案.要寫入excel 檔案的datatable.被寫入的 excel 檔案的絕對路徑 被寫入的 excel 檔案的sheet 的名稱public sta...

C 實現EXCEL資料的匯入匯出

class div content class list excel檔案 dt id txtimgurl runat server cssclass input normal upload path class upload box upload img div dd dl div class id...

c 讀寫Excel及資料匯入SQLServer

c 讀寫excel及資料匯入sqlserver c 操作excel 網上的資料還是比較多的,寫這篇文章也是分享給初學者一些經驗。本人 覺得cspreadsheet.h這個類封裝的還不錯。下面我就如何使用這個類介紹一下,main.cpp include include include include ...