【发布时间】:2017-11-28 02:33:41
【问题描述】:
我编写了一些代码,用于读取 excel 文件中的每一行(针对两个特定列),稍后我将使用这些代码对具有值的每一行执行更新 SQL 查询。
我已经在一个列表框中显示了这些值,当与 excel 文件中的股票代码进行比较时,我得到的空值比预期的要多。
我尝试过更改 excel 文件的格式,但这并没有任何区别。有些行在该位置肯定有股票代码,但是当程序进行单元格比较时,当它们实际具有值时,程序将它们识别为空值。
有人知道我的代码有什么问题吗?
private void btnStockCodes_Click(object sender, RoutedEventArgs e)
{
string file = @"\\amn-fs-01\users$\Shanel\Desktop\Stock Codes.xlsx";
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
Workbook ExcelWorkbook = ExcelApp.Workbooks.Open(file);
Worksheet ews = ExcelApp.ActiveWorkbook.Sheets[1];
Microsoft.Office.Interop.Excel.Range usedRange = ews.UsedRange;
int TotalCounter = 0;
string StockCode = "";
string ReserveID = "";
int nullcounter = 0;
int foundcounter = 0;
foreach (Microsoft.Office.Interop.Excel.Range row in usedRange.Rows)
{
StockCode = "";
ReserveID = "";
TotalCounter = TotalCounter + 1;
if (row.Cells[TotalCounter,7].Value == null)
{
Listbox1.Items.Add(TotalCounter + " null");
nullcounter = nullcounter + 1;
}
else
{
StockCode = row.Cells[TotalCounter,7].Value.ToString();
ReserveID = row.Cells[TotalCounter, 3].Value.ToString();
Listbox1.Items.Add(TotalCounter + " " + StockCode + " " + ReserveID);
foundcounter = foundcounter + 1;
}
}
txtTotal1.Text = foundcounter.ToString() + " Found";
txtTotal2.Text = nullcounter.ToString() + " Null Values";
txtTotal3.Text = TotalCounter.ToString() + " Total Records";
}
【问题讨论】:
-
请上传示例文件供我们测试代码。随意将其缩减为仅显示问题的几行数据。
-
感谢您的建议!我在描述中添加了一个指向 excel 文件示例的 Dropbox 链接。
标签: c# excel excel-interop