從資料庫匯出資料到word excel txt

2022-08-20 02:42:16 字數 3090 閱讀 3617

原創說明內容如下:

在vs環境下選擇office元件時要在引用的com元件中選擇,不能選擇.net元件中的office元件。

以上說明為重點,vs2008在.net元件組中也有office元件部分的內容,那樣的話就只能在開發環境下使用了。

using system;

using system.data;

using system.drawing;

using system.data.sqlclient;

using excel;

using word;

using system.io;

namespace common

///

/// 獲得資料集dataset--------------------------------用於除錯

///

/// dataset

///

/// 把資料檔案匯入到.xls檔案

///

///

public void exporttoexcel(dataset ds)

catch

//讓生成的excel檔案可見

myexcel.visible = true;

}catch(exception e)

}else

}///

/// 把資料匯入到.doc檔案

///

///

public void exporttoword(dataset ds)

catch(exception ex)

}else

}///

/// 把檔案匯入到.doc檔案

///

///

public void exporttoword(bitmap bp)

catch

trycatch

trycatch

//讓生成的word檔案可見

myword.visible = true;

}///

/// 把資料檔案匯入到.txt檔案

///

///

public void exporttotxt(dataset ds)

catch

//把dataset中的資料寫入.txt檔案中

for(int totaltable = 0;totaltable//統計dataset中當前表的列數

int column = ds.tables[totaltable].columns.count;

//用於統計當前表中每列記錄中字元數最長的字串的長度之和

int totallength = 0;

//用於統計標題的長度(dataset中的表名的length+"表的資料如下"的length)

int titlelength = 0;

//統計每列記錄中字元數最長的字串的長度

int columnlength = new int[column];

for(int i = 0;icolumnlength[j])}}

//統計當前表中每列記錄中字元數最長的字串的長度之和

for(int i = 0;i//統計標題的長度(dataset中的當前表名的length+"表的資料如下"的length)

titlelength = ds.tables[totaltable].tablename.tostring().length+"表的資料如下".length*2;

//把標題寫入.txt檔案中

for(int i = 0;i<(int)((totallength-titlelength)/2);i++)

textfile.write(ds.tables[totaltable].tablename+"表的資料如下");

textfile.writeline();

for(int i = 0;i//把dataset中當前表的欄位名寫入.txt檔案中

for(int i = 0;i//把dataset中當前表的資料寫入.txt檔案中

for(int i = 0;i//關閉當前的streamwriter流

textfile.close();

system.windows.forms.messagebox.show("資料檔案已儲存到"+"    "+file.fullname);                

}else

}public string gettempfilename()}}

補充:使用以上方法必須對dcom進行配置,給使用者使用office的許可權。

具體配置方法如下:

1:在伺服器上安裝office的excel軟體.

2:在"開始"->"執行"中輸入dcomcnfg.exe啟動"元件服務"

3:依次雙擊"元件服務"->"計算機"->"我的電腦"->"dcom配置"

4:在"dcom配置"中找到"microsoft excel 應用程式",在它上面點選右鍵,然後點選"屬性",彈出"microsoft excel 應用程式屬性"對話方塊

5:點選"標識"標籤,選擇"互動式使用者"

6:點選"安全"標籤,在"啟動和啟用許可權"上點選"自定義",然後點選對應的"編輯"按鈕,在彈出的"安全性"對話方塊中填加乙個"network service"使用者(注意要選擇本計算機名),並給它賦予"本地啟動"和"本地啟用"許可權.

7:依然是"安全"標籤,在"訪問許可權"上點選"自定義",然後點選"編輯",在彈出的"安全性"對話方塊中也填加乙個"network service"使用者,然後賦予"本地訪問"許可權.

這樣,我們便配置好了相應的excel的dcom許可權.

注意:我是在win2003上配置的,在2000上,是配置aspnet使用者

若不進行配置會出現錯誤

檢索 com 類工廠中 clsid 為 的元件時失敗,原因是出現以下錯誤: 80070005。

原因是使用者沒有使用excel的許可權。

匯出到word同樣要配置使用word的許可權。 

繼續補充: 匯出到txt我用了上面的方法有問題,

try

catch

總是在這裡跳到catch裡面。匯出到word,excel都能用,繼續研究txt的使用方法

文章出處:

從資料庫匯出資料到word excel txt

獲得資料集dataset 用於除錯 dataset 把資料檔案匯入到.xls檔案 public void exporttoexcel dataset ds catch 讓生成的excel檔案可見 myexcel.visible true catch exception e else 把資料匯入到.d...

從資料庫中匯出資料

首先開啟xp cmdshell許可權 exec sp configure show advanced options 1 reconfigure exec sp configure xp cmdshell 1 reconfigure 1,匯出資料到txt exec master.xp cmdshel...

從資料庫匯出資料到excel之List 匯出

說明 有時候資料處理為list 更方便 姊妹篇 從資料庫匯出資料到excel之list 匯出 兄弟篇 從資料庫匯出資料到excel之poi操作 專案說明見兄弟篇 資料層和業務層 不多說,因專案而異,處理後的資料為list 說明 object也一樣 控制層 list order export.expo...