Я использую Automation для получения текста из листа Excel. Я делаю это, потому что мне нужно отформатированное значение (получение значения ячейки не применяет никакого форматирования). Если столбец, в котором находится ячейка, слишком узкий, я получаю «#####» так же, как если бы я смотрел электронную таблицу через Excel. Как я могу избежать этого?
EDIT:
Вот соответствующий код:
// Return the (string) value of a cell
HRESULT CDialogImport::GetCellValue(IRange *irange, int irow, int icol, CString &cstrValue)
{
// Get dispatch interface for the cell at irow,icol
COleVariant vCell;
HRESULT hr = AutoWrap(
DISPATCH_PROPERTYGET,
&vCell,
irange,
L"Item",
2,
COleVariant((short)(icol+1)),
COleVariant((short)(irow+1)));
if (FAILED(hr)) return hr;
// Use the dispatch interface to get the value of the cell
COleVariant result;
hr = AutoWrap(
DISPATCH_PROPERTYGET,
&result,
vCell.pdispVal,
L"Text",
0);
if (SUCCEEDED(hr))
{
cstrValue = result;
}
return hr;
}