C#操作EXCEL DataTable轉(zhuǎn)換的實(shí)例代碼
更新時(shí)間:2013年04月08日 22:36:36 作者:
C#操作EXCEL DataTable轉(zhuǎn)換的實(shí)例代碼,需要的朋友可以參考一下
復(fù)制代碼 代碼如下:
//加載Excel
public DataSet LoadDataFromExcel(string filePath)
{
try
{
string strConn;
//strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'", filePath);
OleDbConnection OleConn = new OleDbConnection(strConn);
OleConn.Open();
String sql = "SELECT * FROM [Sheet1$]";//可是更改Sheet名稱,比如sheet2,等等
OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
DataSet OleDsExcle = new DataSet();
OleDaExcel.Fill(OleDsExcle, "Sheet1");
OleConn.Close();
return OleDsExcle;
}
catch (Exception err)
{
return null;
}
}
/// <summary>
/// DataTable直接導(dǎo)出Excel,此方法會(huì)把DataTable的數(shù)據(jù)用Excel打開,再自己手動(dòng)去保存到確切的位置
/// </summary>
/// <param name="dt">要導(dǎo)出Excel的DataTable</param>
/// <returns></returns>
public bool DoExport(System.Data.DataTable dt)
{
Microsoft.Office.Interop.Excel.Application app = new ApplicationClass();
if (app == null)
{
throw new Exception("Excel無法啟動(dòng)");
}
app.Visible = true;
Workbooks wbs = app.Workbooks;
Workbook wb = wbs.Add(Missing.Value);
Worksheet ws = (Worksheet)wb.Worksheets[1];
int cnt = dt.Rows.Count;
int columncnt = dt.Columns.Count;
// *****************獲取數(shù)據(jù)********************
object[,] objData = new Object[cnt + 1, columncnt]; // 創(chuàng)建緩存數(shù)據(jù)
// 獲取列標(biāo)題
for (int i = 0; i < columncnt; i++)
{
objData[0, i] = dt.Columns[i].ColumnName;
}
// 獲取具體數(shù)據(jù)
for (int i = 0; i < cnt; i++)
{
System.Data.DataRow dr = dt.Rows[i];
for (int j = 0; j < columncnt; j++)
{
objData[i + 1, j] = dr[j];
}
}
//********************* 寫入Excel******************
Range r = ws.get_Range(app.Cells[1, 1], app.Cells[cnt + 1, columncnt]);
r.NumberFormat = "@";
//r = r.get_Resize(cnt+1, columncnt);
r.Value2 = objData;
r.EntireColumn.AutoFit();
app = null;
return true;
}
您可能感興趣的文章:
- C#如何將DataTable導(dǎo)出到Excel解決方案
- C#將Excel中的數(shù)據(jù)轉(zhuǎn)換成DataSet
- C#實(shí)現(xiàn)將DataTable內(nèi)容輸出到Excel表格的方法
- C#使用Datatable導(dǎo)出Excel
- C#中DataGridView導(dǎo)出Excel的兩種方法
- C#把EXCEL數(shù)據(jù)轉(zhuǎn)換成DataTable
- C#把DataTable導(dǎo)出為Excel文件
- C#實(shí)現(xiàn)讀取Excel文件并將數(shù)據(jù)寫入數(shù)據(jù)庫和DataTable
- C#中ExcelDataReader的具體使用
相關(guān)文章
.NET企業(yè)級(jí)項(xiàng)目中遇到的國際化問題和解決方法
這篇文章主要介紹了.NET企業(yè)級(jí)項(xiàng)目中遇到的國際化問題和解決方法,說明了理國際化問題的一些典型例子和經(jīng)驗(yàn)之談,需要的朋友可以參考下2014-07-07
C#中Invoke和BeginInvoke區(qū)別小結(jié)
有時(shí)候,我們不得不跨線程調(diào)用主界面的控件來進(jìn)行操作,所以為了方便的解決問題,.net為我們提供了Invoke?與beginInvoke,那么Invoke和BeginInvoke區(qū)別在哪,本文就來詳細(xì)的介紹一下2023-08-08
C# 中使用Stopwatch計(jì)時(shí)器實(shí)現(xiàn)暫停計(jì)時(shí)繼續(xù)計(jì)時(shí)功能
這篇文章主要介紹了C# 中使用Stopwatch計(jì)時(shí)器可暫停計(jì)時(shí)繼續(xù)計(jì)時(shí),主要介紹stopwatch的實(shí)例代碼詳解,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
C#使用三層架構(gòu)開發(fā)Winform的詳細(xì)案例
這篇文章介紹了C#使用三層架構(gòu)開發(fā)Winform的詳細(xì)案例,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
C#實(shí)現(xiàn)XSL轉(zhuǎn)換的方法
這篇文章主要介紹了C#實(shí)現(xiàn)XSL轉(zhuǎn)換的方法,結(jié)合實(shí)例分析了C#執(zhí)行XSL轉(zhuǎn)換XML的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11

