NPOI를 사용하여 Excel 스프레드 시트를 읽습니다. 코드에서 위에서 언급 한 오류 gettting [ "Amount"] = row.GetCell (4). 누군가가 문제가 무엇인지 말해 줄 수 있습니까?'NPOI.XSSF.UserModel.XSSFCell'유형의 객체를 'System.IConvertible'유형으로 캐스팅 할 수 없습니다.
XSSFWorkbook xssfwb;
using (FileStream file = new FileStream(excelPath, FileMode.Open, FileAccess.Read))
{
xssfwb = new XSSFWorkbook(file);
}
var sheet = xssfwb.GetSheetAt(0); // Change this to the worksheet you want to import.
var rows = sheet.GetRowEnumerator();
var dtExcelData = new DataTable();
var linenumber = 0;
DataRow dr;
dtExcelData.Columns.AddRange(new DataColumn[3] {
new DataColumn("AccountNumber", typeof(string)),
new DataColumn("Amount", typeof(decimal)),
new DataColumn("Sedol",typeof(string)) });
while (rows.MoveNext())
{
var row = (XSSFRow)rows.Current;
linenumber++;
if (row.GetCell(0) != null)
{
dr = dtExcelData.NewRow();
dr["AccountNumber"] = row.GetCell(1).ToString();
dr["Amount"] = row.GetCell(4);
dr["Sedol"] = row.GetCell(11).ToString();
dtExcelData.Rows.Add(dr);
}
}
'Amount'가 숫자이고 그 값에 대해 확신하는 이유는'row.GetCell (4) .NumericCellValue'을 사용하지 않는 이유는 무엇입니까? –
나는 오류가 발생합니다. 텍스트 셀에서 숫자 값을 가져올 수 없습니다. – user3751248
다음으로 Number에 셀 형식을 설정할 수 없다면 문자열로 읽고 구문 분석해야합니다 (Shannon에서 제안한 것처럼). 형식은 소수점 구분 기호 (문화 정보가 무엇인지, 시트에 무엇이 있는지 확인) 때문에 올바르지 않을 수 있습니다. –