检索excel表格单元格值
本文关键字:单元格 表格 excel 检索 | 更新日期: 2023-09-27 18:01:30
我使用c#来读取excel表格中特定单元格的值。但是根据我的代码,我没有得到任何值…
获取单元格值的代码是:
foreach (DataRow dr in sourceds.Tables[0].Rows) {
while (clmn < dr.ItemArray.Count()) {
value = ((Microsoft.Office.Interop.Excel.Range)ws.Cells[row,clmn]).Text.ToString();
ws.Cells[row, clmn] = value;
ws.Cells[row, clmn] = value;
clmn++;
}
row++;
}
wb.Save();
这里我正在从其他工作表中读取单元格,并希望在其他工作表中插入该值。
.Text
参数只有在内容为文本时才有值。一般情况下,您需要使用.Value.ToString()
。
您提到从另一个工作表获取值。你把床单放在哪里?你应该能够做一些像wb.Sheets[0].Cells[row,clmn].Value.ToString()
(假设你想从第一个表的数据)。
看看这段代码,你正在一个单元格一个单元格地复制项目。使用选择/复制/粘贴功能要简单得多:
Range r1 = wb.Sheets[0].Cells["C1", "E5" ]; // define corners of selection square
Range r2 = wb.Sheets[1].Cells["A1"]; // destination
r1.Select();
r1.Copy(r2);
你可以试试这个…
MyCellValue = (((Microsoft.Office.Interop.Excel.Range)oWorkSheet.Cells[myRow, myCol]).Value2 != null ? ((Microsoft.Office.Interop.Excel.Range)oWorkSheet.Cells[myRow, myCol]).Value2.ToString().Trim() : "");
检查值是否为空,这样就不会出现异常。myCel变量可以是数字(表示列的数量)或字符串(表示列的名称,即。"一个")。myRow变量是行号
- 添加
Microsoft.Office.Interop.Excel.dll
在您的应用程序 -
在你的方法中写下面一行代码/或者使用这个方法:
private void readExcel() { object _row = 1; object _column = 1; Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.ApplicationClass(); excelApp.Visible = false; excelApp.ScreenUpdating = false; excelApp.DisplayAlerts = false; Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(@"D:''Book1.xlsx", 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); Microsoft.Office.Interop.Excel.Sheets excelSheets = excelWorkbook.Worksheets; string currentSheet = "Sheet1"; Microsoft.Office.Interop.Excel.Worksheet excelWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelSheets.get_Item(currentSheet); Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)excelWorksheet.UsedRange; string sValue = (range.Cells[_row, _column] as Microsoft.Office.Interop.Excel.Range).Value2.ToString(); //sValue has your value }