C#의 XLSX에서 데이터 읽기
저는 c#에 처음이며 다음 코드로 c#에 있는 XLSX 파일을 읽으려고 합니다.
string Connection = "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=c:\\Temp\\source.xlsx;Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";";
//code to read the content of format file
OleDbConnection con = new OleDbConnection(Connection);
OleDbCommand command = new OleDbCommand();
DataTable dt = new DataTable();
OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Tabelle1$]", con);
myCommand.Fill(dt);
Console.Write(dt.Rows.Count);
출력에서 정확한 카운트를 얻었지만 두 가지 질문이 더 있습니다.
1. select where 문(행에 액세스하는 방법)을 만드는 방법은 무엇입니까?
select * from [Tabelle1$] where A = '123' (A being an existing Excel row)
잘못된 매개 변수를 언급하는 오류가 발생합니다.
2. 누가 나에게 튜토리얼 링크나 짧은 샘플을 제공할 수 있습니까? 어떻게 데이터에 접근할 수 있습니까?
다음 샘플 코드를 참조하십시오.
private DataTable LoadXLS(string strFile, String sheetName, String column, String value)
{
DataTable dtXLS = new DataTable(sheetName);
try
{
string strConnectionString = "";
if(strFile.Trim().EndsWith(".xlsx")) {
strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", strFile);
} else if(strFile.Trim().EndsWith(".xls")) {
strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";", strFile);
}
OleDbConnection SQLConn = new OleDbConnection(strConnectionString);
SQLConn.Open();
OleDbDataAdapter SQLAdapter = new OleDbDataAdapter();
string sql = "SELECT * FROM [" + sheetName + "$] WHERE " + column + " = " + value;
OleDbCommand selectCMD = new OleDbCommand(sql, SQLConn);
SQLAdapter.SelectCommand = selectCMD;
SQLAdapter.Fill(dtXLS);
SQLConn.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
return dtXLS;
}
저는 이것이 훌륭한 답을 가진 오래된 질문이라는 것을 알고 있지만, 이 페이지는 "import xlsx c#"에 대한 구글의 결과를 높이 평가했기 때문에 NPOI 라이브러리를 사용하여 xls/xlsx 데이터를 읽는 더 현대적이고 간단한 방법을 추가하고 싶었습니다.저는 새로운 c# 개발자들이 ado.net 를 사용하는 것보다 엑셀 데이터를 더 쉽게 가져올 수 있는 방법이 있다는 것을 확실히 알고 싶습니다.
저는 NPOI와 NPOi의 조합을 사용합니다.Mapper(donnytian: https://github.com/donnytian/Npoi.Mapper) 에서 Excel 파일을 쉽게 가져올 수 있습니다.NPOI 및 Npoi에 대한 뉘트 참조를 추가합니다.그런 다음 가져올 열과 직접 관련된 강력한 유형의 클래스를 사용하여 xls/xlsx 데이터를 가져올 수 있습니다.
'''시스템 사용 중.IO; 시스템 사용.Linq; Npoi 사용.Mapper; Npoi 사용.Mapper. 특성. NPOI 사용.SS.사용자 모델, 사용자 관리 서비스 사용.모델;
네임스페이스 작업고객가져오기.프로세서 {public class Excel EmailProcessor {private User ManagementServiceContext DataContext {get; }
public ExcelEmailProcessor(int customerNumber)
{
DataContext = new UserManagementServiceContext();
}
public void Execute(string localPath, int sheetIndex)
{
IWorkbook workbook;
using (FileStream file = new FileStream(localPath, FileMode.Open, FileAccess.Read))
{
workbook = WorkbookFactory.Create(file);
}
var importer = new Mapper(workbook);
var items = importer.Take<MurphyExcelFormat>(sheetIndex);
foreach(var item in items)
{
var row = item.Value;
if (string.IsNullOrEmpty(row.EmailAddress))
continue;
UpdateUser(row);
}
DataContext.SaveChanges();
}
private void UpdateUser(MurphyExcelFormat row)
{
//LOGIC HERE TO UPDATE A USER IN DATABASE...
}
private class MurphyExcelFormat
{
[Column("District")]
public int District { get; set; }
[Column("DM")]
public string FullName { get; set; }
[Column("Email Address")]
public string EmailAddress { get; set; }
[Column(3)]
public string Username { get; set; }
public string FirstName
{
get
{
return Username.Split('.')[0];
}
}
public string LastName
{
get
{
return Username.Split('.')[1];
}
}
}
}
} ```
관심이 있으시다면, 제 블로그에서 몇 가지 세부 사항을 다루었습니다.Excel 파일을 쉽게 가져오는 방법.
고마워요! 댄
언급URL : https://stackoverflow.com/questions/5886089/read-data-from-xlsx-in-c-sharp
'programing' 카테고리의 다른 글
EF 데이터베이스를 사용한 ASP.NET ID 첫 번째 MVC5 (0) | 2023.07.10 |
---|---|
해시 각 루프에서 인덱스에 액세스할 수 있습니까? (0) | 2023.07.10 |
스프링 부트에 스프링 컨버터를 프로그래밍 방식으로 등록 (0) | 2023.07.10 |
WordPress 콜백 함수에서 게시 메타 가져오기 (0) | 2023.07.10 |
[표시]를 사용하여 표시하는 방법자동 완성 재료2의 경우 (0) | 2023.07.10 |