C#操作EXCEL DataTable转换的实例代码
C#操作EXCEL DataTable转换的实例代码
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下://加载ExcelpublicDataSetLoadDataFromExcel(stringfilePath){try{s...

复制代码 代码如下:

//加载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直接导出Excel,此方法会把DataTable的数据用Excel打开,再自己手动去保存到确切的位置

/// </summary>

/// <param name="dt">要导出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无法启动");

}

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;

// *****************获取数据********************

object[,] objData = new Object[cnt + 1, columncnt]; // 创建缓存数据

// 获取列标题

for (int i = 0; i < columncnt; i++)

{

objData[0, i] = dt.Columns[i].ColumnName;

}

// 获取具体数据

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#教程学习
热门C#教程学习
编程开发子分类