我有一个看起来像这样的 Excel 工作表。
|A1|B1| “空白”|D1|E1|F1|
IE。仅填充第一行,第三列为空白。我使用 interop.excel 在 C# 中按以下方式解析此内容:
Excel.Application exApp = OpenExcel();
String mySheet = @"C:\c#\rapport.xlsx";
Excel.Workbook wb = exApp.Workbooks.Open(mySheet);
Excel.Worksheet ws = wb.Sheets[1];
Excel.Range row = ws.Rows[1];
我创建了一个仅包含第 1 行中的非空单元格的新范围
Excel.Range rng = row.SpecialCells(Excel.XlCellType.xlCellTypeConstants);
现在:如果我使用rng.Select
我的工作表中的所有非空单元格都被选中。如果我使用rng.Count
它将返回 5,这是我的工作表中非空单元格的数量。但当我使用以下命令逐个单元打印时:
Console.WriteLine(rng[1,i].Value.ToString());
它表明 rng[1, 1-2] 包含“A1 和 B1”,这很好。但
rng[1, 3] 为空或 null。 rng[1, 4-7] 包含 D1-F1。
这怎么可能?
我的主要目标是将所有非空值存储在字符串数组中。但我无法选择正确的值,因为我的范围 rng 既为空又非空,这是一种奇怪的方式。
尝试使用:
ws.Columns.ClearFormats();
ws.Rows.ClearFormats();
确保您的范围排除格式化但空的单元格。
另一种尝试可能是获得:
Excel.Range rng = row.SpecialCells(Excel.XlCellType.xlCellTypeConstants,Type.Missing);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)