/// <summary>
/// Import Excel File To DataGridView
/// </summary>
/// <param name="grid">DataGridView Control</param>
/// <param name="sFilePath">Excel File Path</param>
/// <param name="sFirstRowHeader">if first row in excel is header is then yes else no</param>
/// <param name="isExcelFileVersion2003">엑셀파일의 버전이 2003보다 큰지의 여부</param>
/// <return>성공하면 에러메세지가 없고 그렇지않으면 발생한 에러 메세지를 반환함</return>
string GridViewExcel(Systehttp://m.Windows.Forms.DataGridView grid, string sFilePath, string sSheetName = "Sheet1"
, string sFirstRowHeader = "no", bool isExcelFileVersion2003 = false)
{
string sErrorMessage = string.Empty;
Systehttp://m.Data.OleDb.OleDbConnection conn = null;
Systehttp://m.Data.OleDb.OleDbDataAdapter dataAdapter = null;
try
{
string sConn = string.Empty;
string sFileType = sFilePath.Substring(sFilePath.LastIndexOf('.'));
//if (sFileType == ".xlsx") //version >2003
if (isExcelFileVersion2003 == false)
{
sConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR={1};IMEX=1\";"
, sFilePath, sFirstRowHeader);
}
else
{
sConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=\"Excel 8.0;HDR={1};IMEX=1\";"
, sFilePath, sFirstRowHeader);
}
conn = new Systehttp://m.Data.OleDb.OleDbConnection(sConn);
dataAdapter = new Systehttp://m.Data.OleDb.OleDbDataAdapter("Select * from [" + sSheetName + "$]", conn);
System.Data.DataTable dt = new System.Data.DataTable();
dataAdapter.Fill(dt);
grid.DataSource = dt;
return sErrorMessage;
}
catch (Exception ex)
{
sErrorMessage = "Error: " + ex.Message + " Line: " + ex.Source;
}
finally
{
if (dataAdapter != null)
dataAdapter.Dispose();
if (conn != null)
conn.Close();
}
return sErrorMessage;
}
'유용한 정보' 카테고리의 다른 글
[C#] 레지스트리 읽기/쓰기 (0) | 2025.04.17 |
---|---|
[C#] Get MAC address (0) | 2025.04.16 |
[C#] Excel to PrintPreview (0) | 2025.04.16 |
[C#] Excel To Printer (0) | 2025.04.16 |
[C#] 데이터셋 연동하기 (0) | 2025.04.16 |