2025. 3. 7. 11:27ㆍ젬스it
CodePagesEncodingProvider가 표시되지 않는다면, 몇 가지 점검해야 할 사항이 있습니다. `ExcelDataReader` 라이브러리를 사용할 때, .NET Core 또는 .NET Framework에서 `CodePagesEncodingProvider`를 사용할 수 있도록 해주어야 합니다.
1. **ExcelDataReader 초기화**:
- `System.Text.Encoding.CodePages` 패키지를 설치해야 합니다.
- NuGet 패키지 관리자를 열고 다음 명령어를 입력하여 설치합니다:
```powershell
Install-Package System.Text.Encoding.CodePages
```
2. **코드 수정**:
- `System.Text.Encoding.CodePages`를 참조한 다음, `CodePagesEncodingProvider`를 등록합니다.
```csharp
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using Microsoft.Win32;
using ExcelDataReader;
using System.Text; // 추가된 네임스페이스
namespace ExcelUploader
{
public partial class UploadControl : UserControl
{
public UploadControl()
{
InitializeComponent();
// ExcelDataReader 초기화 (시작 시 코드 페이지 등록)
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
private void UploadButton_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel Files|*.xls;*.xlsx";
if (openFileDialog.ShowDialog() == true)
{
string filePath = openFileDialog.FileName;
UploadExcelFile(filePath);
}
}
private void UploadExcelFile(string filePath)
{
DataTable dt = new DataTable();
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
var result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
dt = result.Tables[0];
}
}
string dbConnectionString = "Your database connection string";
using (SqlConnection sqlConn = new SqlConnection(dbConnectionString))
{
sqlConn.Open();
foreach (DataRow row in dt.Rows)
{
SqlCommand sqlCmd = new SqlCommand("INSERT INTO YourTableName (Column1, Column2) VALUES (@Column1, @Column2)", sqlConn);
sqlCmd.Parameters.AddWithValue("@Column1", row["Column1"]);
sqlCmd.Parameters.AddWithValue("@Column2", row["Column2"]);
sqlCmd.ExecuteNonQuery();
}
}
MessageBox.Show("엑셀 파일이 성공적으로 업로드되었습니다.", "업로드 완료", MessageBoxButton.OK, MessageBoxImage.Information);
}
}
}
```
위 코드를 통해 `Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)`를 사용하여 `CodePagesEncodingProvider`를 등록하고 사용할 수 있습니다.
이 단계를 통해 문제가 해결되기를 바랍니다. 추가로 궁금한 사항이 있으면 언제든지 말씀해 주세요! 😊 [A](https://github.com/NarubetUTL/UTL.PartMaster/tree/eb99d9ec5c8d16a3de1c2cae0b4add46878fbd19/Authentication%2FMainMDI.cs?copilot_analytics_metadata=eyJldmVudEluZm9fY2xpY2tTb3VyY2UiOiJjaXRhdGlvbkxpbmsiLCJldmVudEluZm9fY29udmVyc2F0aW9uSWQiOiI1WmtlNndBcDRWZXR2QmRSOUNpbXYiLCJldmVudEluZm9fbWVzc2FnZUlkIjoiNFBkRDFCOEFMVjVqbU5EUVp5MlFHIiwiZXZlbnRJbmZvX2NsaWNrRGVzdGluYXRpb24iOiJodHRwczpcL1wvZ2l0aHViLmNvbVwvTmFydWJldFVUTFwvVVRMLlBhcnRNYXN0ZXJcL3RyZWVcL2ViOTlkOWVjNWM4ZDE2YTNkZTFjMmNhZTBiNGFkZDQ2ODc4ZmJkMTlcL0F1dGhlbnRpY2F0aW9uJTJGTWFpbk1ESS5jcyJ9&citationMarker=9F742443-6C92-4C44-BF58-8F5A7C53B6F1)
'젬스it' 카테고리의 다른 글
IT 프리랜서로 같은 직장에서 4년째 근무 중이라면 휴가일수는? (0) | 2025.03.24 |
---|---|
닷넷 프레임워크 4.6.1 환경에서 WPF로 `ExcelDataReader`를 사용하여 엑셀 파일을 업로드하고 데이터를 데이터베이스에 넣는방법 (0) | 2025.03.10 |
wpf. oledb,npoi, epplus 를 사용하지 않고, Microsoft Excel Interop 라이브러리를 사용 엑셀파일 업로드 (0) | 2025.03.06 |
wpf에서 csv파일 업로드시 UserControl 안에. UserControl 을 넣어서 코딩하는 예제 (0) | 2025.03.06 |
wpf에서 oledb를 이용해서 엑셀파일을 업로드해서 해당 내용을 db에 넣는 방법은? (0) | 2025.03.05 |