如何检查单元格是否为空(Excel visualc#)
本文关键字:Excel visualc# 是否 单元格 检查 何检查 | 更新日期: 2023-09-27 18:18:43
我的目标是检查Sheet1
中的每行,以发现有多少行,所以我放了一个do'while,它应该在到达空白单元格时停止
的例子:
row1 data
row6 data
row2 data
row3 data
row4 data
row5 data
row7 data
在本例中,我只需要前5行,因此do'while检查将在到达空白单元格时停止。这不会发生,因为检查不会循环(它在完成一个循环后停止,就像它找到一个空白单元格一样,即使它填充了数据)。
string str;
int rCnt = 11; //the data I need is after the 10th row in excel
int cCnt = 1;
int valori = 1;
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(label4.Text, 0, false, 5, "", "",
false, Excel.XlPlatform.xlWindows,
"", true, false, 0, true, false,
false);
Excel.Sheets xlsheet = xlWorkbook.Worksheets;
string sheet1 = "Sheet1";
Excel.Worksheet xlWorksheet = (Excel.Worksheet)xlsheet.get_Item(sheet1);
Excel.Range xlCell;
do
{
rCnt++;
str = "A" + rCnt;
xlCell = (Excel.Range)xlWorksheet.get_Range(str, str);
} while (xlCell.Value2 == null);
我尝试将Value2
更改为Value
或Text
,并尝试设置== "
如果你想在到达空白单元格时停止循环,那么…尝试更改
while (xlCell.Value2 == null);
while (! IsNull(xlCell.Value2));
检查单元格是否为空的简单方法:
if (sheet.Cells[4,3] == null || sheet.Cells[4,3].Value2 == null || sheet.Cells[4,3].Value2.ToString() == "")
MessageBox.Show(“cell on row 4 col 3 is empty”);
您可以使用所选单元格的Text
属性。它可以通过"as"转换为字符串类型。结果字符串已经可以像c#中通常的那样进行检查,比如非空
string TempText = excelWorksheet.Cells[1, 1].Text as string;
if (!string.IsNullOrWhiteSpace(TempText)){
// actions
}
这个问题主要来自于当您不知道期望得到什么样的数据时。当我使用Excel读取时,我经常做类似的事情:
var _cell = range.Cells[1, 2].Value2;
if (_cell.GetType() != typeof(Double))
在你的实例中,如果你总是得到一个字符串返回,那么你应该能够假设强制转换:
string _str = (string)(range.Cells[str, str] as Excel.Range).Value2;
,然后检查它是否为空。
这是为我工作:
使用Excel = Microsoft.Office.Interop.Excel;
读取excel表:
var excelApp = new Excel.Application();
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(path, 0, false, 5, "", "", false, XlPlatform.xlWindows, "", true, false, 0, true, false, false);
Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelWorkbook.Sheets[2];
Excel.Range excelRange = excelWorksheet.UsedRange;
int rowCount = excelRange.Rows.Count;
int colCount = excelRange.Columns.Count;
string wwdEmpty = Convert.ToString(excelRange.Cells[5, 14].value2);
// this is working code with NULL Excell cell
do
{
rCnt++;
str = Sheet.Cells[rCnt, 5].Value;
} while (str != null);