C# Winform實(shí)現(xiàn)導(dǎo)入和導(dǎo)出Excel文件
本文實(shí)例為大家分享了Winform實(shí)現(xiàn)導(dǎo)入導(dǎo)出Excel文件的具體代碼,供大家參考,具體內(nèi)容如下
/// <summary>
/// 導(dǎo)出Excel文件
/// </summary>
/// /// <param name="dataSet"></param>
/// <param name="dataTable">數(shù)據(jù)集</param>
/// <param name="isShowExcle">導(dǎo)出后是否打開文件</param>
/// <returns></returns>
public static bool DataTableToExcel(string filePath, System.Data.DataTable dataTable, bool isShowExcle)
{
//System.Data.DataTable dataTable = dataSet.Tables[0];
int rowNumber = dataTable.Rows.Count;
int columnNumber = dataTable.Columns.Count;
int colIndex = 0;
if (rowNumber == 0)
{
return false;
}
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
excel.Visible = isShowExcle;
Microsoft.Office.Interop.Excel.Range range;
foreach (DataColumn col in dataTable.Columns)
{
colIndex++;
excel.Cells[1, colIndex] = col.ColumnName;
}
object[,] objData = new object[rowNumber, columnNumber];
for (int r = 0; r < rowNumber; r++)
{
for (int c = 0; c < columnNumber; c++)
{
objData[r, c] =dataTable.Rows[r][c];
}
}
range = worksheet.get_Range(excel.Cells[2, 1], excel.Cells[rowNumber + 1, columnNumber]);
range.Value2 = objData;
range.NumberFormatLocal = "@";
worksheet.SaveAs(filePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
//excel.Quit();
return true;
}
讀取Excel文件數(shù)據(jù)到DataTable
/// <summary>
/// 讀取Excel文件數(shù)據(jù)到DataTable
/// </summary>
/// <param name="filePath">Excel文件路徑</param>
private void Import_Excel(string filePath)
{
string sqlconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
string sql = @"select * from [Sheet1$]";
try
{
using (OleDbConnection conn = new OleDbConnection(sqlconn))
{
using (OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn))
{
System.Data.DataTable dt = new System.Data.DataTable();
adapter.Fill(dt);
this.LoadDataGridView(dt);
}
}
}
catch (Exception ex)
{
MessageBox.Show("打開文件出錯(cuò),錯(cuò)誤信息:" + ex.Message.ToString(), "提示");
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#中實(shí)現(xiàn)查找字符串中指定字符位置方法小結(jié)
這篇文章主要為大家介紹了C#中實(shí)現(xiàn)查找字符串中指定字符位置的常用方法,本文將以"."字符為例,詳細(xì)講解這些方法的具體使用,需要的可以參考下2024-02-02
C#開發(fā)Windows服務(wù)實(shí)例之實(shí)現(xiàn)禁止QQ運(yùn)行
這篇文章主要介紹了通過C#開發(fā)Windows服務(wù),查殺qq進(jìn)程的服務(wù)功能,需要的朋友可以參考下2013-10-10
C#定時(shí)器實(shí)現(xiàn)自動(dòng)執(zhí)行的方法
這篇文章主要介紹了C#定時(shí)器實(shí)現(xiàn)自動(dòng)執(zhí)行的方法,實(shí)例分析了C#定時(shí)器參數(shù)的設(shè)置及方法的調(diào)用與實(shí)現(xiàn),需要的朋友可以參考下2015-01-01
c# 實(shí)現(xiàn)打印機(jī)狀態(tài)查詢與阻塞打印
這篇文章主要介紹了c# 引用System.Management來實(shí)現(xiàn)對(duì)打印機(jī)狀態(tài)的查詢,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-05-05
c#斐波那契數(shù)列(Fibonacci)(遞歸,非遞歸)實(shí)現(xiàn)代碼
c#斐波那契數(shù)列(Fibonacci)(遞歸,非遞歸)實(shí)現(xiàn)代碼,需要的朋友可以參考一下2013-05-05

