Доброго времени суток!
X++:
public void Import()
{
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
COMVariantType type;
int row = 0;
if(!this.dialogPrompt())
return;
application = SysExcelApplication::construct();
workbooks = application.workbooks();
try
{
workbooks.open(filename);
}
catch (Exception::Error)
{
throw error("File cannot be opened.");
}
workbook = workbooks.item(1);
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);
cells = worksheet.cells();
do
{
row++;
info(strfmt('%1 - %2', cells.item(row, 1).value().bStr(), cells.item(row, 2).value().bStr()));
type = cells.item(row+1, 1).value().variantType();
}
while (type != COMVariantType::VT_EMPTY);
application.quit();
}
Делаю по примеру чтение данных из файла excel. Проблема в том что value().bStr() не отдает ничего если считает что в ячейке какой то другой тип (например int). Подскажите как считывать данные в независимости от типа ячейки? метод toString() отдает данные вместе с постфиксом имени типа COMVariant::Type и портит значение (например если было 12, отдает "12.000 VT_R8")