(四) 单元格的操作
单元格的操作实际上就是对范围(Range)的操作。一般的代码段如下:
RangePtr r;
r=EWS4->get_Range(V("a1"), V("a1"));
r->set_Value(V("Species No"));
所以,对单元格内容的操作实际就是先获得一个要操作的范围(Range),然后再set_Value的过程。
和数据库连接并不很困难。将数据库中的数据写到Excel Worksheet中也不是很难,无非是遍历数据集,然后将对应字段的内容写到相应的单元格里去而已,所以这里我就不详细论述了。公式的输入也是如此。
实际操作的效果如下图:
这里需要说明两个地方。第一是字体和栏目宽度的调整。具体的代码如下:
r=EWS4->get_Range(V(CellRef), V(CellRef2));
r->Font->set_Name(V("Arial"));
r->get_Columns()->AutoFit();
r->set_WrapText(V(true));
其操作流程也是先选择一个范围,然后设置字体名称、栏目宽度、自动换行等。
第二是图形的显示。这需要多一些操作才可以:
void __fastcall TMainForm::FillDataBtnClick(TObject *Sender)
{
unsigned int DataHandle;
HPALETTE APalette;
unsigned short MyFormat;
Graphics::TBitmap *Bitmap = new Graphics::TBitmap();
... ...
while (!Table1->Eof)
{
... ...
CellRef="e"+IntToStr(Count);
r=EWS4->get_Range(V(CellRef), V(CellRef));
Bitmap->Assign(Table1Graphic);
Bitmap->SaveToClipboardFormat(MyFormat,DataHandle,APalette);
Clipboard()->SetAsHandle(MyFormat,DataHandle);
EWS4->Paste(V(LPDISPATCH(r)), TNP, 0);
... ...
}
... ...
delete Bitmap;
return;
}
这里采用了Bitmap->Assign,将图形字段的内容作为Bitmap的内容,然后将Bitmap以剪贴板的格式保存到DataHandle中去,并返回保存的格式到MyFormat。然后用Clipbboard的SetAsHandle方法,将DataHandle中的内容以MyFormat格式“拷贝”到剪贴板上。最后,再用Worksheet的Paste方法将剪贴板上的图片拷贝到r指定的地方。
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!