在C#中单击按钮逐个读取Excel文件单元格值


public static string ExcelName = "";
string imagepath;
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
private void btnExcel_Click(object sender, EventArgs e)
{
getExcel();
}
private void getExcel()
{
try
{
OpenFileDialog folder = new OpenFileDialog();
folder.Title = "Select Excel file";
folder.FileName = "";
folder.Filter = "Excel File|*.xlsx;*.xls";
if (folder.ShowDialog() == DialogResult.OK)
{
ExcelName = folder.FileName;
if (ExcelName.Trim() != "")
{
textBoxExcel.Text = ExcelName;              // READ EXCEL DATA.
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}
private void btnImage_Click(object sender, EventArgs e)
{
readImgaePath();
}
private void label5_Click(object sender, EventArgs e)
{
}
private void readImgaePath()
{
FolderBrowserDialog imagepathDir = new FolderBrowserDialog();

if (imagepathDir.ShowDialog() == DialogResult.OK)
{
imagepath = imagepathDir.SelectedPath;
textBoxIamge.Text = imagepath;

}
}
private void btnNext_Click(object sender, EventArgs e)
{
int iRow = 2;
textBoxGo.Text = iRow.ToString();
getExcelData(iRow);
iRow++;

}
public  void getExcelData(int rowNo)
{
try
{
string excelfile = ExcelName;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(excelfile);
xlWorkSheet = xlWorkBook.Worksheets["Sheet1"];
Excel.Range xlRange = xlWorkSheet.UsedRange;
int rowCount = xlRange.Rows.Count;
//int colCount = xlRange.Columns.Count;
for ( int i=rowNo;i<=rowCount;i++)
{
if(xlWorkSheet.Cells[i,2].value==null)
{
textEnterData.Text = xlWorkSheet.Cells[i, 2].value();
}

else
{
textEnterData.Text = xlWorkSheet.Cells[i, 2].value();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

我想打开用于选择excel文件的对话框,并通过单击按钮逐个读取Excel文件数据,以及一个用于转到上一个单元格值的按钮。

我的代码在文本框中读取并显示Excel文件的最后一个值,单击按钮后,它不会转到下一条记录(单元格值(.它正在挂起并创建Excel exe的多个实例。

当它读取文件的最后一个值并单击下一步时,则没有值,并且 for 循环中的 else 状态应该会产生异常。

只需将所有单元格值放在一个列表中,然后使用对话框遍历列表即可。

最新更新