比較C 三種方法實現讀取Execl資料到資料庫

2021-05-24 02:32:20 字數 2980 閱讀 7530

方式一:用微軟提供的microsoft.office.interop.excel這個dll,程式讀取excel資料,**如下:

console.writeline("excelfilepath:" + excelfilepath);

m_excelfile.workbooks.open(excelfilepath, missing, missing, missing, missing, missing, missing, missing, missing, missing

, missing, missing, missing, missing, missing);

m_excelfile.visible = false;

m_workbook = m_excelfile.workbooks[1];

m_worksheet = (excel.worksheet)m_workbook.activesheet;

int clomn_count = m_worksheet.usedrange.columns.count;

int row_count = m_worksheet.usedrange.rows.count;

for (int i = 2; i < row_count + 1; i++)//

.........//**可能有好多列

else if (((excel.range)m_worksheet.usedrange.cells[1, j]).text.tostring() == "累計積分" && ((excel.range)m_worksheet.usedrange.cells[i, j]).text.tostring().trim() != "") }

lv_strsqlone += "create_date,sync_flag)";

lv_strsqltwo += "'" + datetime.now + "',0)";

lv_strsql = lv_strsqlone + lv_strsqltwo;

console.writeline("lv_strsql:" + lv_strsql);

try

catch (exception ex)

//關閉excel相關物件

m_worksheet = null;

m_workbook = null;

m_excelfile.quit();

m_excelfile = null;

第二種方式:直接把excel當作資料庫,用odbc方式連線excel,查詢excel的資料,**如下:

string source = null;

odbcconnection conn = null;

string sql = "select * from [sheet1$]";

try

;dbq=" + tbexcelfilepath.text;

conn = new odbcconnection(source);

conn.open();

} catch (odbcexception e)

;dbq=" + tbexcelfilepath.text;

conn = new odbcconnection(source);

conn.open();

} catch (odbcexception e1) }

try

............//excel可能有多列

else if (read.getname(i) == "累計積分" && read.getvalue(i).tostring().trim() != "") }

lv_strsqlone += "create_date,sync_flag)";

lv_strsqltwo += "'" + datetime.now + "',0)";

lv_strsql = lv_strsqlone + lv_strsqltwo;

console.writeline("lv_strsql:" + lv_strsql);

int lv_ret = m_db.runnoquery(lv_strsql);

} catch (exception ex)

} read.close();

conn.close();

} catch (exception e)

第三種方式:直接把excel當作資料庫,用oledb方式連線excel,查詢excel的資料,**如下:

string source = null;

oledbconnection conn = null;

string sql = "select * from [sheet1$]";

try

catch (odbcexception e)

catch (odbcexception e1) }

try

............//excel可能有多列

else if (read.getname(i) == "累計積分" && read.getvalue(i).tostring().trim() != "") }

lv_strsqlone += "create_date,sync_flag)";

lv_strsqltwo += "'" + datetime.now + "',0)";

lv_strsql = lv_strsqlone + lv_strsqltwo;

console.writeline("lv_strsql:" + lv_strsql);

int lv_ret = m_db.runnoquery(lv_strsql);

} catch (exception ex)

} read.close();

conn.close();

} catch (exception e)

總結:效率上第二種方式和第三種方式差不多,第一種方式最慢,建議用第二種或第三種方式。

c 比較時間的三種方法

1。比較時間大小的實驗 string st1 12 13 string st2 14 14 datetime dt1 convert.todatetime st1 datetime dt2 convert.todatetime st2 datetime dt3 datetime.now if dat...

ORACLE批量更新三種方法比較

oracle批量更新三種方法比較 2008 05 30 11 55 46 標籤 雜談 資料庫 oracle 9i 測試工具 pl sql 定義2張測試表 t1,t2 t1 大表 10000條 t1 fk id t2 小表 5000條 t2 pk id t1通過表中字段id與t2的主鍵id關聯 模擬資...

C 裡面比較時間大小三種方法

1。比較時間大小的實驗 string st1 12 13 string st2 14 14 datetime dt1 convert.todatetime st1 datetime dt2 convert.todatetime st2 datetime dt3 datetime.now if dat...