나는 5 가지 방법 (각각 단추를 클릭하는 사용자 기반)이있는 Windows Forms 응용 프로그램이 있습니다. 각 방법마다 동일한 Excel 파일을 같은 방법으로 열고 싶습니다. 그러나 각 방법마다 워크 시트에서 다른 범위를 선택하려고합니다. 나는 5 번 다시 쓰기보다는 오히려 엑셀 파일을 여는 함수를 만들려고 노력했다 ...Excel 변수 반환 C#
// method to open Excel and load a the workbook based on date selected.
public Tuple<Microsoft.Office.Interop.Excel.Application, Workbook, Worksheet> openExcel()
{
Microsoft.Office.Interop.Excel.Application excelObj = new Microsoft.Office.Interop.Excel.Application();
string fileName = @"C:\Users\" + userName + @"\Documents\Visual Studio 2015\Projects\ProgramForMom\ProgramForMom\bin\Debug\Excel Files\" + frm2.year.Text + " Expenses";
Workbook wb = excelObj.Workbooks.Open(fileName, 0, false, 5, "", "", false, XlPlatform.xlWindows, "", true, false, 0, true, false, false);
wb.Activate(); // Activates file.
Worksheet ws = wb.Worksheets[frm2.month.Text];
ws.Activate();
return Tuple.Create(excelObj, wb, ws);
}
모두 잘 작동합니다.
나는 방법 중 하나에이 기능을 참조 시도...
var excelObj = openExcel();
Workbook wb = openExcel();
Worksheet ws = openExcel();
var cellValue = ws.Range["A1"].Value2;
내가 말하는 오류가 ...
"암시 적으로 형식을 변환 할 수 없습니다 'System.Tuple'에 'Microsoft.Office.Interop.Excel.Workbook'. 명시 적 변환이 존재합니다. 캐스트가 누락 되었습니까? "
워크 시트에 대해 동일한 오류가 발생합니다. 똑같은 것이 워크 북이라는 단어를 워크 북 대신에 대체한다고합니다.
내가 잘못 한 것을 설명해 주시겠습니까? 고맙습니다.
완벽한 : 떨어져 튜플을 조롱
는갈 수있는 방법이 될 것입니다! 정말 고맙습니다. 정확히 필요한 것! – Michael
당신은 오신 것을 환영합니다. 튜플은 단시간에 한 곳에서 정보를 수집하는 훌륭한 도구입니다. –
예. 누군가가 3 함수를 만들거나 내 문제와 비슷한 것을 달성하기 위해 전역 변수를 사용하고자하는이 게시물을 보았습니다. 귀하의 솔루션이 나아졌습니다! 아주 쉽고, 깔끔하고 시간을 절약 해줍니다. – Michael