Представьте, у меня есть openFileDialog, button и listBox.
MessageBox.Show();Это мой код на button_Click
Excel.Application myExcelApp = new Excel.Application();
Excel.Workbooks myExcelWorkbooks;
Excel.Workbook myExcelWorkbook;
myExcelApp.Visible = true;
myExcelWorkbooks = myExcelApp.Workbooks;
string fileName = Convert.ToString(openFileDialog1.FileName);
myExcelWorkbook = myExcelWorkbooks.Open(fileName);
Excel.Worksheet myExcelWorksheet = (Excel.Worksheet)myExcelWorkbook.Worksheets.get_Item(1);
// Populate listBox
listBox1.Items.Clear();
foreach (Worksheet worksheet in myExcelWorkbook.Worksheets)
{
listBox1.Items.Add(worksheet.Name);
//AccessWorkSheet(worksheet);
}
myExcelWorkbook.Close(false, fileName, null);
System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcelWorkbook);
myExcelApp.Quit();
и это для listBox_SelectedIndexChanged
Excel.Range range = myExcelWorksheet.UsedRange;
for (rCnt = 1; rCnt <= rw; rCnt++)
{
for (cCnt = 1; cCnt <= cl /*Limit Column Count*/; cCnt++)
{
str = Convert.ToString((range.Cells[rCnt, cCnt] as Range).Value2);
MessageBox.Show(str.ToString());
}
}
Что ж, я полагаю, вы найдете данные, соответствующие индексу. Если первый элемент в списке - «Sheet1», а второй элемент в списке - «RandomSheet», и вы получили индекс 1, вам следует найти данные для «RandomSheet».
@Jeeped Готово! надеюсь, вы понимаете
@Qwerty Единственное, что хранит ваша программа, - это имя рабочего листа. Если вам нужны данные рабочего листа, вам придется либо сохранить их в памяти при заполнении списка, либо загрузить данные листа при выборе элемента.
@John Как мне это сделать? Вы можете показать мне нужный код?





Я бы предпочел увидеть ваш код, чем представить его.