나는 엑셀 테이블 tblPhoneCode
와 함께 두 개의 열 Country
및 Code
로 파일을 가지고 있고, 나는 목록 데이터 유효성 검사가 Country
열을 가리키는 셀 B1이EPPlus가 # VALUE를 반환합니다! 대신 셀 내용의 OFFSET 포뮬러와 함께 사용할 때, 간접적 & MATCH
과는 셀 B2는 기본적으로는 상기 선택된 Country
Code
대한 표시.
셀 B2는 다음 공식을 사용하여 Excel에서 모든 것이 예상대로 작동하지만, 나는 나는 #VALUE!
무엇입니까 C#으로 EPPlus를 사용하여 B2의 값을 읽고있다 할 때 문제가
OFFSET(INDIRECT("tblPhoneCode[#Headers]"),MATCH(B1,INDIRECT("tblPhoneCode[Country]"),0),1,1,1)
실제 전화 Code
대신. 통합 문서, 워크 시트에서 셀에 .Calculate()
을 시도하고 값에 액세스하려고 시도했지만 여전히 동일합니다. 로거를 연결했는데 비어있는 것으로 나타나고 오류가 기록되지 않습니다.
C# 코드
static void Main(string[] args)
{
var excelFile = new FileInfo(@"C:\Users\Ash\Desktop\Epplus.xlsx");
using (var package = new ExcelPackage(excelFile))
{
// Output from the logger will be written to the following file
var logfile = new FileInfo(@"C:\Users\Ash\Desktop\EpplusLogFile.txt");
// Attach the logger before the calculation is performed.
package.Workbook.FormulaParserManager.AttachLogger(logfile);
// Calculate - can also be executed on sheet- or range level.
package.Workbook.Calculate();
Debug.Print(String.Format("Country: \t{0}", package.Workbook.Worksheets[1].Cells["B1"].Value));
Debug.Print(String.Format("Phone Code:\t{0}", package.Workbook.Worksheets[1].Cells["B2"].Value));
// The following method removes any logger attached to the workbook.
package.Workbook.FormulaParserManager.DetachLogger();
}
}
출력 :
Country: US
Phone Code: #VALUE!
어떤 도움이나 통찰력이 많이 나는 MS 엑셀 2010, .NET 4.0, EPPlus 4.1.0 및 Windows 10 64 비트를 사용하고 있습니다 감사합니다
try package.Workbook.Workheets [1] .Cells [ "B2"]. Value.ToString(); –
'.ToString()'과 같은 결과를 얻으 려 시도했으나 출력을보십시오. 심지어'.Text'를 시도했습니다. – Ash
C#에서 값 (국가 코드)을 읽는 대신 사전 (국가 이름) 키를 읽고 사전에서 값을 가져 오는 이유는 무엇입니까? –