我正在尝试阅读、解析和超越,一些不清楚的事情对我来说像往常一样发挥作用。
这是我所拥有的:
while (true)
{
comVariantCell1 = cells.item(row, 1).value().variantType();
comVariantCell2 = cells.item(row, 2).value().variantType();
//if an empty cell is found, processing will stop and user will get an error message in order to solve the inconsistency.
if (comVariantCell1 != COMVariantType::VT_EMPTY && comVariantCell2 != COMVariantType::VT_EMPTY)
{
//both cells have values, check their types.
importedLine = conNull();
progress1.setText(strfmt("Importing row %1", row));
if (cells.item(row, 1).value().variantType() == COMVariantType::VT_BSTR)
{
importedLine += cells.item(row, 1).value().bStr();
}
else
{
importedLine += cells.item(row, 1).value().double();
}
importedLine += cells.item(row, 2).value().double();
importedLinesCollection += [importedLine]; //conIns(importedLinesCollection, row - 1, (importedLine));
row++;
}
else
{
info (strFmt("Empty cell found at line %1 - import will not continue and no records were saved.", row));
break;
}
}
Excel 格式:
Item number Transfer Qty
a100 50.5
a101 10
a102 25
这可以很好地检查单元格类型是否为字符串:COMVariantType::VT_BSTR
但是我应该用什么来检查实数或整数值?
我很确定在这种情况下,数量将不包含实际值,但无论如何,将来区分这两种类型可能会很有用。
我不得不提一下,即使我有一个 int 值并且我使用cells.item(row, 1).value().int()
它也行不通。我不明白为什么。
我为什么要有所作为?因为如果禁止在数量列中包含实际值(至少在我的情况下),我想检查它并让用户有机会在那个地方放置一个正确的值,并可能进一步调查为什么会发生这种情况。