VSTO 系列(02) 實現資料匯入功能

2021-10-21 17:38:33 字數 1840 閱讀 5982

之所以基於 excel 開發外掛程式,乙個重要的原因就是 excel 在資料展示、分析和處理的靈活性。本篇實現從資料庫中基於 sql 將資料匯入到 excel 工作表。

考慮到 ms access 是微軟資料庫,visual studio 天然支援,本例的資料庫使用 ms access 資料庫。從資料庫匯入的資料,可以用 ilist<> 來儲存,也可以用 ado.net 的 datatable 資料型別來儲存,用 datatable 比較靈活,所以我們用 datatable 來實現。下面的**基於 ado.net,因為 ado.net 的使用不是本篇的重點,**不做說明。

using system.data;

using system.data.oledb;

namespace vstodemo

public

static

datatable

listall()

}}

基於 excel 物件模型將輸入匯入也是很模式化的**,我編寫了一段通用**來實現:

using microsoft.office.interop.excel;

using system;

namespace vstodemo

// header array

object

headerarray =

newobject

[colcount]

;for

(int col =

0; col < colcount; col++

)range startcell =

(range)sht.cells[1,

1];// 從第一行第一列開始

// write header from header array

range headerrange = sht.

get_range

(startcell,

(range)sht.cells[startcell.row, colcount]);

headerrange.value = headerarray;

// value for line item cells

object[,

] valuearray =

newobject

[rowcount, colcount]

;for

(int row =

0; row < rowcount; row++)}

// 資料整體從array拷貝到工作表(從表頭的下一行開始)

sht.

get_range

(startcell.offset[1,

0],(range)

(sht.cells[rowcount +

1, colcount]))

.value = valuearray;}}

}

在 button_click 事件中編寫匯入的**:

using microsoft.office.interop.excel;

using microsoft.office.tools.ribbon;

namespace vstodemo

private

void

btnimport_click

(object sender,

ribboncontroleventargs e)

}}

gitee - excel vsto import da

02sqoop匯入資料

1.概念 在sqoop中,匯入 概念指 從非大資料集群 rdbms 向大資料集群 hdfs,hive,hbase 中傳輸資料,叫做 匯入,即使用import關鍵字。2.建立表並插入資料 mysql uroot p000000 create database company create table ...

玩 High API 系列之 實現釘釘Ding功能

場景介紹 用到的api 阿里雲提供的api 語音服務 簡訊服務 郵件服務等。如何實現第一步 簡訊通知 呼叫簡訊服務下的簡訊傳送sendsms api,將寫好的訊息即時傳送給接受者號碼,移動 聯通 電信三網直達,支援1000個號碼的同時傳送。第二步 語音通知 通過語音服務下面的文字轉語音外呼singl...

玩 High API 系列之 實現釘釘Ding功能

阿里雲提供的api 語音服務 簡訊服務 郵件服務等。第一步 簡訊通知 呼叫簡訊服務下的簡訊傳送sendsms api,將寫好的訊息即時傳送給接受者號碼,移動 聯通 電信三網直達,支援1000個號碼的同時傳送。第二步 語音通知 通過語音服務下面的文字轉語音外呼singlecallbytts api,將...