CWorkbooks books;
CWorkbook book;
CWorksheets sheets;
CWorksheet sheet;
CRange range;
/我现在建立一个10*10的range
lpDisp = sheet.get_Range(_variant_t("A1"), _variant_t("J10"));/
range.AttachDispatch(lpDisp);
//现在想插入表头
//比如sheet range("A1") 插入值为("姓名")
//现在这样实现
range.AttachDispatch(sheet.get_Cells());
range.AttachDispatch(range.get_Item(_variant_t(1),_variant_t(1)).pdispVal);
range.AttachDispatch(range.get_EntireRow());
_variant_t vRange;
vRange.vt = VT_DISPATCH;
vRange.pdispVal = range;
range.put_Value2(_variant_t("name"));
//插入的将会是一行name
//get_Item中若改为"A1","A1"则可编译通过,但有未知错误
求高手指点,在线等,不胜感激。
6 个解决方案
#1
VARIANT get_Item(VARIANT& RowIndex, VARIANT& ColumnIndex)
{
VARIANT result;
static BYTE parms[] = VTS_VARIANT VTS_VARIANT ;
InvokeHelper(0xaa, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms, &RowIndex, &ColumnIndex);
return result;
}
很明显了
#2
不好意思可能我没问清楚,请问我想直接写指定单元格怎么实现呢?比如A1写Name。用olesaWrite.PutElement
可以实现吗?怎么用呢?
可以实现吗?怎么用呢?
#3
自己写个函数,将“A1”之类的字符串解析成两个ID
#4
range有一个方法是SetItem
对range的操作和数组类似
对range的操作和数组类似
#5
void put_Item(VARIANT& RowIndex, VARIANT& ColumnIndex, VARIANT& newValue)
{
static BYTE parms[] = VTS_VARIANT VTS_VARIANT VTS_VARIANT ;
InvokeHelper(0xaa, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, &RowIndex, &ColumnIndex, &newValue);
}
put_Item赋值也是一样的,用的ID
#6
感谢大家的帮助,结贴结贴。
#1
VARIANT get_Item(VARIANT& RowIndex, VARIANT& ColumnIndex)
{
VARIANT result;
static BYTE parms[] = VTS_VARIANT VTS_VARIANT ;
InvokeHelper(0xaa, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms, &RowIndex, &ColumnIndex);
return result;
}
很明显了
#2
不好意思可能我没问清楚,请问我想直接写指定单元格怎么实现呢?比如A1写Name。用olesaWrite.PutElement
可以实现吗?怎么用呢?
可以实现吗?怎么用呢?
#3
自己写个函数,将“A1”之类的字符串解析成两个ID
#4
range有一个方法是SetItem
对range的操作和数组类似
对range的操作和数组类似
#5
void put_Item(VARIANT& RowIndex, VARIANT& ColumnIndex, VARIANT& newValue)
{
static BYTE parms[] = VTS_VARIANT VTS_VARIANT VTS_VARIANT ;
InvokeHelper(0xaa, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, &RowIndex, &ColumnIndex, &newValue);
}
put_Item赋值也是一样的,用的ID
#6
感谢大家的帮助,结贴结贴。