编译环境:CB2010 ,win7 64位, Office 2007
遇到的问题就是插入图片时,让它插到第2格,它总是插到第1格,没办法只好改表格的形式了 。
还有就是表格里面填写内容时 ,必须是下面这样做 :
AnsiString content = Edit1->Text;
vCell = vTable.OleFunction("Cell", 2, 2); vCell.OlePropertySet("Range", content.c_str() );
而不能直接把Edit1的内容写进入 ,不然会出现Edit1内容不全的现象:
vCell = vTable.OleFunction("Cell", 2, 2); vCell.OlePropertySet("Range", Edit1->Text.c_str() );
还有就是合并表格的时候,最好自后向前,要不然你把前面的单元格合并了,很容易影响到后面的单元格编号。
下面是生成报表的全部代码:
try
{
//保存电子文档
Variant vWordApp, vTable, vCell;
Smallint TableCount = 0; //表格总数
try
{
vWordApp = Variant::CreateObject("Word.Application");
}
catch(...)
{
MessageBox(0, "启动 Word 出错, 可能是没有安装Word.","提示", MB_OK | MB_ICONERROR);
vWordApp = Unassigned;
return;
}
// 隐藏Word界面
vWordApp.OlePropertySet("Visible", false);
// 新建一个文档
vWordApp.OlePropertyGet("Documents").OleFunction("Add");
Variant vSelect = vWordApp.OlePropertyGet("Selection");
// 设置一下字体,大小 ,对齐
vSelect.OlePropertyGet("Font").OlePropertySet("Size", 22);
vSelect.OlePropertyGet("Font").OlePropertySet("Name", "黑体");
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1);
String str1 = "变压器绕组检测报告\r\n";
vSelect.OleProcedure("TypeText", WideString(str1));
// 设置一下字体,大小 ,对齐
vSelect.OlePropertyGet("Font").OlePropertySet("Size", 9);
vSelect.OlePropertyGet("Font").OlePropertySet("Name", "宋体");
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 0); //靠左对齐
//======================================================================
//======================== 变压器信息 ==================================
//======================================================================
TableCount = TableCount +1;
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 要插入表格的行数
int nRowCount(6);
nRowCount = nRowCount < 2? 2: nRowCount;
// 要插入表格的列数
int nColCount(4);
nColCount = nColCount < 1? 1: nColCount;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount, // 行数
nColCount, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount ); //第 1 个表格
//合并表格,第一行的1-4列
Variant start_cell = vTable.OleFunction("Cell", 1,1);
Variant end_cell = vTable.OleFunction("Cell", 1,4);
start_cell.OleProcedure("Merge", end_cell);
//使表格1中文字居中
vTable.OleFunction("Select");//Tables(1).Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器信息");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
AnsiString content;
vCell = vTable.OleFunction("Cell", 2, 1); vCell.OlePropertySet("Range", "变压器名称");
content = LabeledEdit4->Text;
vCell = vTable.OleFunction("Cell", 2, 2); vCell.OlePropertySet("Range", content.c_str() );
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "原边额定电压");
content = LabeledEdit6->Text;
vCell = vTable.OleFunction("Cell", 3, 2); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 1); vCell.OlePropertySet("Range", "副边额定电压");
content = LabeledEdit8->Text;
vCell = vTable.OleFunction("Cell", 4, 2); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 1); vCell.OlePropertySet("Range", "短路电抗");
content = LabeledEdit29->Text;
vCell = vTable.OleFunction("Cell", 5, 2); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 1); vCell.OlePropertySet("Range", "相数与联接组");
content = LabeledEdit10->Text;
vCell = vTable.OleFunction("Cell", 6, 2); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 2, 3); vCell.OlePropertySet("Range", "变压器型号");
content = LabeledEdit5->Text;
vCell = vTable.OleFunction("Cell", 2, 4); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 3); vCell.OlePropertySet("Range", "原边额定电流");
content = LabeledEdit7->Text;
vCell = vTable.OleFunction("Cell", 3, 4); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 3); vCell.OlePropertySet("Range", "副边额定电流");
content = LabeledEdit9->Text;
vCell = vTable.OleFunction("Cell", 4, 4); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 3); vCell.OlePropertySet("Range", "空载损耗");
content = Edit7->Text;
vCell = vTable.OleFunction("Cell", 5, 4); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 3); vCell.OlePropertySet("Range", "短路损耗");
content = Edit8->Text;
vCell = vTable.OleFunction("Cell", 6, 4); vCell.OlePropertySet("Range", content.c_str());
//======================================================================
//======================== 变压器运行信息 ============================== isDanXiang
//======================================================================
if(CheckBox2->Checked)
{
TableCount = TableCount+1;
if(isDanXiang)
{
//=====单相====
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 再插入一段文字
vSelect.OleProcedure("TypeText", "\n");
int nRowCount2(8);
nRowCount2 = nRowCount2 < 2? 2: nRowCount2;
// 要插入表格的列数
int nColCount2(6);
nColCount2 = nColCount2 < 1? 1: nColCount2;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount2, // 行数
nColCount2, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount); //选择第2个表格
//合并表格
start_cell = vTable.OleFunction("Cell", 8,5);
end_cell = vTable.OleFunction("Cell", 8,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 8,2);
end_cell = vTable.OleFunction("Cell", 8,3);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 7,5);
end_cell = vTable.OleFunction("Cell", 7,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 7,2);
end_cell = vTable.OleFunction("Cell", 7,3);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 6,5);
end_cell = vTable.OleFunction("Cell", 6,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 6,2);
end_cell = vTable.OleFunction("Cell", 6,3);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 5,5);
end_cell = vTable.OleFunction("Cell", 5,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 5,2);
end_cell = vTable.OleFunction("Cell", 5,3);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 1,1);
end_cell = vTable.OleFunction("Cell", 1,6);
start_cell.OleProcedure("Merge", end_cell);
//使表格2中文字居中
vTable.OleFunction("Select");//Tables(2).Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器运行信息");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
vCell = vTable.OleFunction("Cell", 2, 1); vCell.OlePropertySet("Range", "原边");
vCell = vTable.OleFunction("Cell", 2, 2); vCell.OlePropertySet("Range", "有效值");
vCell = vTable.OleFunction("Cell", 2, 3); vCell.OlePropertySet("Range", "相位");
vCell = vTable.OleFunction("Cell", 2, 4); vCell.OlePropertySet("Range", "副边");
vCell = vTable.OleFunction("Cell", 2, 5); vCell.OlePropertySet("Range", "有效值");
vCell = vTable.OleFunction("Cell", 2, 6); vCell.OlePropertySet("Range", "相位");
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "电压");
content = RzEdit41->Text;
vCell = vTable.OleFunction("Cell", 3, 2); vCell.OlePropertySet("Range", content.c_str());
content = RzEdit51->Text;
vCell = vTable.OleFunction("Cell", 3, 3); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 4); vCell.OlePropertySet("Range", "电压");
content = RzEdit42->Text;
vCell = vTable.OleFunction("Cell", 3, 5); vCell.OlePropertySet("Range", content.c_str());
content = RzEdit55->Text;
vCell = vTable.OleFunction("Cell", 3, 6); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 1); vCell.OlePropertySet("Range", "电流");
content = RzEdit44->Text;
vCell = vTable.OleFunction("Cell", 4, 2); vCell.OlePropertySet("Range", content.c_str());
content = RzEdit54->Text;
vCell = vTable.OleFunction("Cell", 4, 3); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 4); vCell.OlePropertySet("Range", "电流");
content = RzEdit43->Text;
vCell = vTable.OleFunction("Cell", 4, 5); vCell.OlePropertySet("Range", content.c_str());
content = RzEdit56->Text;
vCell = vTable.OleFunction("Cell", 4, 6); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 1); vCell.OlePropertySet("Range", "视在功率");
content = RzEdit47->Text;
vCell = vTable.OleFunction("Cell", 5, 2); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 3); vCell.OlePropertySet("Range", "视在功率");
content = RzEdit45->Text;
vCell = vTable.OleFunction("Cell", 5, 4); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 1); vCell.OlePropertySet("Range", "有功功率");
content = RzEdit48->Text;
vCell = vTable.OleFunction("Cell", 6, 2); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 3); vCell.OlePropertySet("Range", "有功功率");
content = RzEdit46->Text;
vCell = vTable.OleFunction("Cell", 6, 4); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 1); vCell.OlePropertySet("Range", "无功功率");
content = RzEdit49->Text;
vCell = vTable.OleFunction("Cell", 7, 2); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 3); vCell.OlePropertySet("Range", "无功功率");
content = RzEdit52->Text;
vCell = vTable.OleFunction("Cell", 7, 4); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 1); vCell.OlePropertySet("Range", "功率因数");
content = RzEdit50->Text;
vCell = vTable.OleFunction("Cell", 8, 2); vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 3); vCell.OlePropertySet("Range", "功率因数");
content = RzEdit53->Text;
vCell = vTable.OleFunction("Cell", 8, 4); vCell.OlePropertySet("Range", content.c_str());
}
else
{
//=====三相=====
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 再插入一段文字
vSelect.OleProcedure("TypeText", "\n");
// 要插入表格的行数
int nRowCount2(12);
nRowCount2 = nRowCount2 < 2? 2: nRowCount2;
// 要插入表格的列数
int nColCount2(6);
nColCount2 = nColCount2 < 1? 1: nColCount2;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount2, // 行数
nColCount2, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount); //选择第2个表格
//合并表格,第一行的1-6列
start_cell = vTable.OleFunction("Cell", 1,1);
end_cell = vTable.OleFunction("Cell", 1,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 9,5);
end_cell = vTable.OleFunction("Cell", 9,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 9,2);
end_cell = vTable.OleFunction("Cell", 9,3);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 10,5);
end_cell = vTable.OleFunction("Cell", 10,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 10,2);
end_cell = vTable.OleFunction("Cell", 10,3);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 11,5);
end_cell = vTable.OleFunction("Cell", 11,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 11,2);
end_cell = vTable.OleFunction("Cell", 11,3);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 12,5);
end_cell = vTable.OleFunction("Cell", 12,6);
start_cell.OleProcedure("Merge", end_cell);
//合并表格
start_cell = vTable.OleFunction("Cell", 12,2);
end_cell = vTable.OleFunction("Cell", 12,3);
start_cell.OleProcedure("Merge", end_cell);
//使表格2中文字居中
vTable.OleFunction("Select");//Tables(2).Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器运行信息");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
vCell = vTable.OleFunction("Cell", 2, 1); vCell.OlePropertySet("Range", "原边");
vCell = vTable.OleFunction("Cell", 2, 2); vCell.OlePropertySet("Range", "有效值");
vCell = vTable.OleFunction("Cell", 2, 3); vCell.OlePropertySet("Range", "相位");
vCell = vTable.OleFunction("Cell", 2, 4); vCell.OlePropertySet("Range", "副边");
vCell = vTable.OleFunction("Cell", 2, 5); vCell.OlePropertySet("Range", "有效值");
vCell = vTable.OleFunction("Cell", 2, 6); vCell.OlePropertySet("Range", "相位");
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "A相电压");
vCell = vTable.OleFunction("Cell", 3, 2); content = RzEdit1->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 3); content = RzEdit11->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 4); vCell.OlePropertySet("Range", "A相电压");
vCell = vTable.OleFunction("Cell", 3, 5); content = RzEdit21->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 6); content = RzEdit31->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 1); vCell.OlePropertySet("Range", "B相电压");
vCell = vTable.OleFunction("Cell", 4, 2); content = RzEdit2->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 3); content = RzEdit12->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 4); vCell.OlePropertySet("Range", "B相电压");
vCell = vTable.OleFunction("Cell", 4, 5); content = RzEdit22->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 6); content = RzEdit32->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 1); vCell.OlePropertySet("Range", "C相电压");
vCell = vTable.OleFunction("Cell", 5, 2); content = RzEdit3->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 3); content = RzEdit13->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 4); vCell.OlePropertySet("Range", "C相电压");
vCell = vTable.OleFunction("Cell", 5, 5); content = RzEdit23->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 6); content = RzEdit33->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 1); vCell.OlePropertySet("Range", "A相电流");
vCell = vTable.OleFunction("Cell", 6, 2); content = RzEdit4->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 3); content = RzEdit14->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 4); vCell.OlePropertySet("Range", "A相电流");
vCell = vTable.OleFunction("Cell", 6, 5); content = RzEdit24->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 6); content = RzEdit34->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 1); vCell.OlePropertySet("Range", "B相电流");
vCell = vTable.OleFunction("Cell", 7, 2); content = RzEdit5->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 3); content = RzEdit15->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 4); vCell.OlePropertySet("Range", "B相电流");
vCell = vTable.OleFunction("Cell", 7, 5); content = RzEdit25->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 6); content = RzEdit35->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 1); vCell.OlePropertySet("Range", "C相电流");
vCell = vTable.OleFunction("Cell", 8, 2); content = RzEdit6->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 3); content = RzEdit16->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 4); vCell.OlePropertySet("Range", "C相电流");
vCell = vTable.OleFunction("Cell", 8, 5); content = RzEdit26->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 6); content = RzEdit36->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 9, 1); vCell.OlePropertySet("Range", "视在功率");
vCell = vTable.OleFunction("Cell", 9, 2); content = RzEdit7->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 9, 3); vCell.OlePropertySet("Range", "视在功率");
vCell = vTable.OleFunction("Cell", 9, 4); content = RzEdit27->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 10, 1); vCell.OlePropertySet("Range", "有功功率");
vCell = vTable.OleFunction("Cell", 10, 2); content = RzEdit8->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 10, 3); vCell.OlePropertySet("Range", "有功功率");
vCell = vTable.OleFunction("Cell", 10, 4); content = RzEdit28->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 11, 1); vCell.OlePropertySet("Range", "无功功率");
vCell = vTable.OleFunction("Cell", 11, 2); content = RzEdit9->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 11, 3); vCell.OlePropertySet("Range", "无功功率");
vCell = vTable.OleFunction("Cell", 11, 4); content = RzEdit29->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 12, 1); vCell.OlePropertySet("Range", "功率因数");
vCell = vTable.OleFunction("Cell", 12, 2); content = RzEdit10->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 12, 3); vCell.OlePropertySet("Range", "功率因数");
vCell = vTable.OleFunction("Cell", 12, 4); content = RzEdit30->Text; vCell.OlePropertySet("Range", content.c_str());
}
}
//======================================================================
//======================== 变压器绕组变形 ==============================
//======================================================================
if(CheckBox3->Checked)
{
TableCount = TableCount+1;
if(isDanXiang)
{
//=====单相====
//=====三相=====
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 再插入一段文字
vSelect.OleProcedure("TypeText", "\n");
// 要插入表格的行数
int nRowCount3(7);
nRowCount3 = nRowCount3 < 2? 2: nRowCount3;
// 要插入表格的列数
int nColCount3(5);
nColCount3 = nColCount3 < 1? 1: nColCount3;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount3, // 行数
nColCount3, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount ); //选择第3个表格
//合并表格,第一行的1-7列
start_cell = vTable.OleFunction("Cell", 1,1);
end_cell = vTable.OleFunction("Cell", 1,5);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 2,2);
end_cell = vTable.OleFunction("Cell", 2,5);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 3,2);
end_cell = vTable.OleFunction("Cell", 3,5);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 4,2);
end_cell = vTable.OleFunction("Cell", 4,5);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 5,2);
end_cell = vTable.OleFunction("Cell", 5,5);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 7,2);
end_cell = vTable.OleFunction("Cell", 7,5);
start_cell.OleProcedure("Merge", end_cell);
//使表格中 文字居中
vTable.OleFunction("Select");//Tables(3).Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器绕组变形");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
vCell = vTable.OleFunction("Cell", 2, 1); vCell.OlePropertySet("Range", "短路电抗计算值1");
vCell = vTable.OleFunction("Cell", 2, 2); content = Edit1->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "短路电抗计算值2");
vCell = vTable.OleFunction("Cell", 3, 2); content = Edit2->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 1); vCell.OlePropertySet("Range", "短路电抗平均值");
vCell = vTable.OleFunction("Cell", 4, 2); content = LabeledEdit28->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 1); vCell.OlePropertySet("Range", "短路电抗初始值");
vCell = vTable.OleFunction("Cell", 5, 2); content = LabeledEdit29->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 1); vCell.OlePropertySet("Range", "短路电抗变化值");
vCell = vTable.OleFunction("Cell", 6, 2); vCell.OlePropertySet("Range", "绝对值");
vCell = vTable.OleFunction("Cell", 6, 3); content = Edit5->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 4); vCell.OlePropertySet("Range", "百分比");
vCell = vTable.OleFunction("Cell", 6, 5); content = Edit6->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 1); vCell.OlePropertySet("Range", "绕组变形情况与检修建议");
vCell = vTable.OleFunction("Cell", 7, 2); content = LabeledEdit33->Text; vCell.OlePropertySet("Range", content.c_str());
}
else
{
//=====三相=====
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 再插入一段文字
vSelect.OleProcedure("TypeText", "\n");
// 要插入表格的行数
int nRowCount3(8);
nRowCount3 = nRowCount3 < 2? 2: nRowCount3;
// 要插入表格的列数
int nColCount3(7);
nColCount3 = nColCount3 < 1? 1: nColCount3;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount3, // 行数
nColCount3, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount ); //选择第3个表格
//合并表格,第一行的1-7列
start_cell = vTable.OleFunction("Cell", 1,1);
end_cell = vTable.OleFunction("Cell", 1,7);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 6,1);
end_cell = vTable.OleFunction("Cell", 7,1);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 8,2);
end_cell = vTable.OleFunction("Cell", 8,7);
start_cell.OleProcedure("Merge", end_cell);
//使表格3中文字居中
vTable.OleFunction("Select");//Tables(3).Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器绕组变形");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
vCell = vTable.OleFunction("Cell", 2, 1); vCell.OlePropertySet("Range", "短路电抗初始值"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 2, 2); vCell.OlePropertySet("Range", "A相");
vCell = vTable.OleFunction("Cell", 2, 3); content = LabeledEdit120->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 2, 4); vCell.OlePropertySet("Range", "B相");
vCell = vTable.OleFunction("Cell", 2, 5); content = LabeledEdit121->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 2, 6); vCell.OlePropertySet("Range", "C相");
vCell = vTable.OleFunction("Cell", 2, 7); content = LabeledEdit122->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "短路电抗计算值1"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 3, 2); vCell.OlePropertySet("Range", "A相");
vCell = vTable.OleFunction("Cell", 3, 3); content = LabeledEdit18->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 4); vCell.OlePropertySet("Range", "B相");
vCell = vTable.OleFunction("Cell", 3, 5); content = LabeledEdit30->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 6); vCell.OlePropertySet("Range", "C相");
vCell = vTable.OleFunction("Cell", 3, 7); content = LabeledEdit31->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 1); vCell.OlePropertySet("Range", "短路电抗计算值2"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 4, 2); vCell.OlePropertySet("Range", "A相");
vCell = vTable.OleFunction("Cell", 4, 3); content = LabeledEdit112->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 4); vCell.OlePropertySet("Range", "B相");
vCell = vTable.OleFunction("Cell", 4, 5); content = LabeledEdit113->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 6); vCell.OlePropertySet("Range", "C相");
vCell = vTable.OleFunction("Cell", 4, 7); content = LabeledEdit114->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 1); vCell.OlePropertySet("Range", "短路电抗平均值"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 5, 2); vCell.OlePropertySet("Range", "A相");
vCell = vTable.OleFunction("Cell", 5, 3); content = LabeledEdit116->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 4); vCell.OlePropertySet("Range", "B相");
vCell = vTable.OleFunction("Cell", 5, 5); content = LabeledEdit117->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 6); vCell.OlePropertySet("Range", "C相");
vCell = vTable.OleFunction("Cell", 5, 7); content = LabeledEdit118->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 1); vCell.OlePropertySet("Range", "短路电抗变化值"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 6, 2); vCell.OlePropertySet("Range", "A相绝对值");
vCell = vTable.OleFunction("Cell", 6, 3); content = LabeledEdit124->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 4); vCell.OlePropertySet("Range", "B相绝对值");
vCell = vTable.OleFunction("Cell", 6, 5); content = LabeledEdit126->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 6); vCell.OlePropertySet("Range", "C相绝对值");
vCell = vTable.OleFunction("Cell", 6, 7); content = LabeledEdit128->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 2); vCell.OlePropertySet("Range", "A相百分比");
vCell = vTable.OleFunction("Cell", 7, 3); content = LabeledEdit125->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 4); vCell.OlePropertySet("Range", "B相百分比");
vCell = vTable.OleFunction("Cell", 7, 5); content = LabeledEdit127->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 6); vCell.OlePropertySet("Range", "C相百分比");
vCell = vTable.OleFunction("Cell", 7, 7); content = LabeledEdit129->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 1); vCell.OlePropertySet("Range", "绕组变形情况与检修建议"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 8, 2); content = LabeledEdit17->Text; vCell.OlePropertySet("Range", content.c_str());
}
}
//======================================================================
//======================== 变压器绕组短路 ==============================
//======================================================================
if(CheckBox4->Checked)
{
TableCount = TableCount+1;
if(isDanXiang)
{
//=====单相====
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 再插入一段文字
vSelect.OleProcedure("TypeText", "\n");
// 要插入表格的行数
int nRowCount4(7);
nRowCount4 = nRowCount4 < 2? 2: nRowCount4;
// 要插入表格的列数
int nColCount4(5);
nColCount4 = nColCount4 < 1? 1: nColCount4;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount4, // 行数
nColCount4, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount ); //选择第4个表格
//合并表格
start_cell = vTable.OleFunction("Cell", 7,2);
end_cell = vTable.OleFunction("Cell", 7,5);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 1,1);
end_cell = vTable.OleFunction("Cell", 1,5);
start_cell.OleProcedure("Merge", end_cell);
//使表格中 文字居中
vTable.OleFunction("Select");//Tables.Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器绕组短路");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
vCell = vTable.OleFunction("Cell", 2, 1); vCell.OlePropertySet("Range", "空载损耗估算");
vCell = vTable.OleFunction("Cell", 2, 2); content = Edit7->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 2, 3); vCell.OlePropertySet("Range", "短路损耗估算");
vCell = vTable.OleFunction("Cell", 2, 4); content = Edit8->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "功率损耗");
vCell = vTable.OleFunction("Cell", 3, 2); content = Edit9->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 3); vCell.OlePropertySet("Range", "损耗阈值");
vCell = vTable.OleFunction("Cell", 3, 4); content = LabeledEdit37->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 1); vCell.OlePropertySet("Range", "损耗越限");
vCell = vTable.OleFunction("Cell", 4, 2); vCell.OlePropertySet("Range", "绝对值");
vCell = vTable.OleFunction("Cell", 4, 3); content = Edit10->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 4); vCell.OlePropertySet("Range", "百分比");
vCell = vTable.OleFunction("Cell", 4, 5); content = Edit11->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 1); vCell.OlePropertySet("Range", "电流纵差");
vCell = vTable.OleFunction("Cell", 5, 2); content = Edit12->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 3); vCell.OlePropertySet("Range", "纵差阈值");
vCell = vTable.OleFunction("Cell", 5, 4); content = LabeledEdit45->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 1); vCell.OlePropertySet("Range", "纵差越限");
vCell = vTable.OleFunction("Cell", 6, 2); vCell.OlePropertySet("Range", "绝对值");
vCell = vTable.OleFunction("Cell", 6, 3); content = Edit13->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 4); vCell.OlePropertySet("Range", "百分比");
vCell = vTable.OleFunction("Cell", 6, 5); content = Edit14->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 1); vCell.OlePropertySet("Range", "绕组短路情况与检修建议"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 7, 2); content = LabeledEdit32->Text; vCell.OlePropertySet("Range", content.c_str());
}
else
{
//=====三相=====
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 再插入一段文字
vSelect.OleProcedure("TypeText", "\n");
// 要插入表格的行数
int nRowCount4(12);
nRowCount4 = nRowCount4 < 2? 2: nRowCount4;
// 要插入表格的列数
int nColCount4(7);
nColCount4 = nColCount4 < 1? 1: nColCount4;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount4, // 行数
nColCount4, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount ); //选择第4个表格
//合并表格
start_cell = vTable.OleFunction("Cell", 12,2);
end_cell = vTable.OleFunction("Cell", 12,7);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 10,1);
end_cell = vTable.OleFunction("Cell", 11,1);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 8,1);
end_cell = vTable.OleFunction("Cell", 9,1);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 5,1);
end_cell = vTable.OleFunction("Cell", 6,1);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 3,1);
end_cell = vTable.OleFunction("Cell", 4,1);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 2,4);
end_cell = vTable.OleFunction("Cell", 2,5);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 2,1);
end_cell = vTable.OleFunction("Cell", 2,2);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 1,1);
end_cell = vTable.OleFunction("Cell", 1,7);
start_cell.OleProcedure("Merge", end_cell);
//使表格3中文字居中
vTable.OleFunction("Select");//Tables.Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器绕组短路");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
vCell = vTable.OleFunction("Cell", 2, 1); vCell.OlePropertySet("Range", "空载损耗估算");
vCell = vTable.OleFunction("Cell", 2, 2); content = Edit3->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 2, 3); vCell.OlePropertySet("Range", "短路损耗估算");
vCell = vTable.OleFunction("Cell", 2, 4); content = Edit4->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "功率损耗"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 3, 2); vCell.OlePropertySet("Range", "A相");
vCell = vTable.OleFunction("Cell", 3, 3); content = LabeledEdit82->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 4); vCell.OlePropertySet("Range", "B相");
vCell = vTable.OleFunction("Cell", 3, 5); content = LabeledEdit83->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 3, 6); vCell.OlePropertySet("Range", "C相");
vCell = vTable.OleFunction("Cell", 3, 7); content = LabeledEdit84->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 2); vCell.OlePropertySet("Range", "单相阈值");
vCell = vTable.OleFunction("Cell", 4, 3); content = LabeledEdit79->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 4); vCell.OlePropertySet("Range", "负序损耗");
vCell = vTable.OleFunction("Cell", 4, 5); content = LabeledEdit85->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 4, 6); vCell.OlePropertySet("Range", "负序阈值");
vCell = vTable.OleFunction("Cell", 4, 7); content = LabeledEdit76->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 1); vCell.OlePropertySet("Range", "越限"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 5, 2); vCell.OlePropertySet("Range", "A相绝对值");
vCell = vTable.OleFunction("Cell", 5, 3); content = Edit15->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 4); vCell.OlePropertySet("Range", "B相绝对值");
vCell = vTable.OleFunction("Cell", 5, 5); content = Edit17->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 5, 6); vCell.OlePropertySet("Range", "C相绝对值");
vCell = vTable.OleFunction("Cell", 5, 7); content = Edit19->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 2); vCell.OlePropertySet("Range", "A相百分比");
vCell = vTable.OleFunction("Cell", 6, 3); content = Edit16->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 4); vCell.OlePropertySet("Range", "B相百分比");
vCell = vTable.OleFunction("Cell", 6, 5); content = Edit18->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 6, 6); vCell.OlePropertySet("Range", "C相百分比");
vCell = vTable.OleFunction("Cell", 6, 7); content = Edit20->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 1); vCell.OlePropertySet("Range", "总损耗越限"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 7, 2); vCell.OlePropertySet("Range", "绝对值");
vCell = vTable.OleFunction("Cell", 7, 3); content = Edit21->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 7, 4); vCell.OlePropertySet("Range", "百分比");
vCell = vTable.OleFunction("Cell", 7, 5); content = Edit22->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 1); vCell.OlePropertySet("Range", "电流纵差"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 8, 2); vCell.OlePropertySet("Range", "A相");
vCell = vTable.OleFunction("Cell", 8, 3); content = LabeledEdit81->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 4); vCell.OlePropertySet("Range", "B相");
vCell = vTable.OleFunction("Cell", 8, 5); content = LabeledEdit88->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 8, 6); vCell.OlePropertySet("Range", "C相");
vCell = vTable.OleFunction("Cell", 8, 7); content = LabeledEdit90->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 9, 2); vCell.OlePropertySet("Range", "单相阈值");
vCell = vTable.OleFunction("Cell", 9, 3); content = LabeledEdit87->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 10, 1); vCell.OlePropertySet("Range", "越限"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 10, 2); vCell.OlePropertySet("Range", "A相绝对值");
vCell = vTable.OleFunction("Cell", 10, 3); content = Edit23->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 10, 4); vCell.OlePropertySet("Range", "B相绝对值");
vCell = vTable.OleFunction("Cell", 10, 5); content = Edit25->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 10, 6); vCell.OlePropertySet("Range", "C相绝对值");
vCell = vTable.OleFunction("Cell", 10, 7); content = Edit27->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 11, 2); vCell.OlePropertySet("Range", "A相百分比");
vCell = vTable.OleFunction("Cell", 11, 3); content = Edit24->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 11, 4); vCell.OlePropertySet("Range", "B相百分比");
vCell = vTable.OleFunction("Cell", 11, 5); content = Edit26->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 11, 6); vCell.OlePropertySet("Range", "C相百分比");
vCell = vTable.OleFunction("Cell", 11, 7); content = Edit28->Text; vCell.OlePropertySet("Range", content.c_str());
vCell = vTable.OleFunction("Cell", 12, 1); vCell.OlePropertySet("Range", "绕组短路情况与检修建议"); vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632);
vCell = vTable.OleFunction("Cell", 12, 2); content = LabeledEdit34->Text; vCell.OlePropertySet("Range", content.c_str());
}
}
//======================================================================
//======================== 变压器 V-I 曲线 =============================
//======================================================================
if(CheckBox5->Checked)
{
TableCount = TableCount+1;
if(isDanXiang)
{
//=====单相====
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 再插入一段文字
vSelect.OleProcedure("TypeText", "\n");
// 要插入表格的行数
int nRowCount5(3);
nRowCount5 = nRowCount5 < 2? 2: nRowCount5;
// 要插入表格的列数
int nColCount5(2);
nColCount5 = nColCount5 < 1? 1: nColCount5;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount5, // 行数
nColCount5, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount ); //选择第5个表格
//设置表格宽度
vTable.OlePropertyGet("Columns").OleFunction("Item",1).OlePropertySet("PreferredWidthType", 1); // wdPreferredWidthCM
vTable.OlePropertyGet("Columns").OleFunction("Item",1).OlePropertySet("PreferredWidth", 1);
//合并表格
start_cell = vTable.OleFunction("Cell", 1,1);
end_cell = vTable.OleFunction("Cell", 1,2);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 2,1);
end_cell = vTable.OleFunction("Cell", 2,2);
start_cell.OleProcedure("Merge", end_cell);
//使表格中 文字居中
vTable.OleFunction("Select");//Tables.Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器V-I曲线");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "故障判断");
vCell = vTable.OleFunction("Cell", 3, 2); content = Memo2->Text; vCell.OlePropertySet("Range", content.c_str());
//插入图片
AnsiString strPicFile = ExtractFilePath(Application->ExeName) +"\\VI.emf";
if(FileExists(strPicFile))
{
vTable=vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount);
vTable.OleFunction("Cell",2, 1).OleFunction("Select");
Variant vShape =vWordApp.OlePropertyGet("Selection").OlePropertyGet("InlineShapes").OleFunction("AddPicture", strPicFile.c_str(),false,true);
vShape.OlePropertySet("LockAspectRatio",1);
//vShape.OlePropertySet("Height",100 );
//vShape.OlePropertySet("Width",100 );
}
}
else
{
//=====三相=====
// 将光标移到文档结尾
vWordApp.OlePropertyGet("Selection").OleProcedure("EndKey", 6); //wdStory
// 再插入一段文字
vSelect.OleProcedure("TypeText", "\n");
// 要插入表格的行数
int nRowCount5(5);
nRowCount5 = nRowCount5 < 2? 2: nRowCount5;
// 要插入表格的列数
int nColCount5(2);
nColCount5 = nColCount5 < 1? 1: nColCount5;
// 在Word文档中插入一个表格
vWordApp.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add",vSelect.OlePropertyGet("Range"),
nRowCount5, // 行数
nColCount5, // 列数
1, // DefaultTableBehavior:=wdWord9TableBehavior
0); // AutoFitBehavior:=wdAutoFitFixed
// 操作这个表格
vTable = vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount ); //选择第5个表格
//设置表格宽度
vTable.OlePropertyGet("Columns").OleFunction("Item",2).OlePropertySet("PreferredWidthType", 1); // wdPreferredWidthCM
vTable.OlePropertyGet("Columns").OleFunction("Item",2).OlePropertySet("PreferredWidth", 1);
//合并表格
start_cell = vTable.OleFunction("Cell", 1,1);
end_cell = vTable.OleFunction("Cell", 1,2);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 2,1);
end_cell = vTable.OleFunction("Cell", 2,2);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 3,1);
end_cell = vTable.OleFunction("Cell", 3,2);
start_cell.OleProcedure("Merge", end_cell);
start_cell = vTable.OleFunction("Cell", 4,1);
end_cell = vTable.OleFunction("Cell", 4,2);
start_cell.OleProcedure("Merge", end_cell);
//使表格3中文字居中
vTable.OleFunction("Select");//Tables.Select
vSelect.OleFunction("SelectCell");//Selection.SelectCell
vSelect.OlePropertyGet("ParagraphFormat").OlePropertySet("Alignment", 1); //wdAlignParagraphCenter Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
vSelect.OlePropertyGet("Cells").OlePropertySet("VerticalAlignment", 1); // wdCellAlignVerticalCenter Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
//填写表格内容
vCell = vTable.OleFunction("Cell", 1, 1);
vCell.OlePropertySet("Range", "变压器V-I曲线");
vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); // 列名单元格背景颜色 // wdColorGray125
vCell = vTable.OleFunction("Cell", 2, 1); vCell.OlePropertySet("Range", "A相曲线");
vCell = vTable.OleFunction("Cell", 3, 1); vCell.OlePropertySet("Range", "B相曲线");
vCell = vTable.OleFunction("Cell", 4, 1); vCell.OlePropertySet("Range", "C相曲线");
vCell = vTable.OleFunction("Cell", 5, 1); vCell.OlePropertySet("Range", "故障判断");
vCell = vTable.OleFunction("Cell", 5, 2); content = Memo2->Text; vCell.OlePropertySet("Range", content.c_str());
//插入图片
AnsiString strPicFile = ExtractFilePath(Application->ExeName) +"\\VIa.emf";
if(FileExists(strPicFile))
{
vTable=vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount);
vTable.OleFunction("Cell",2, 1).OleFunction("Select");
Variant vShape =vWordApp.OlePropertyGet("Selection").OlePropertyGet("InlineShapes").OleFunction("AddPicture", strPicFile.c_str(),false,true);
vShape.OlePropertySet("LockAspectRatio",1);
//vShape.OlePropertySet("Height",100 );
//vShape.OlePropertySet("Width",100 );
}
//插入图片
strPicFile = ExtractFilePath(Application->ExeName) +"\\VIb.emf";
if(FileExists(strPicFile))
{
vTable=vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount);
vTable.OleFunction("Cell",3, 1).OleFunction("Select");
Variant vShape =vWordApp.OlePropertyGet("Selection").OlePropertyGet("InlineShapes").OleFunction("AddPicture", strPicFile.c_str(),false,true);
vShape.OlePropertySet("LockAspectRatio",1);
//vShape.OlePropertySet("Height",100 );
//vShape.OlePropertySet("Width",100 );
}
//插入图片
strPicFile = ExtractFilePath(Application->ExeName) +"\\VIc.emf";
if(FileExists(strPicFile))
{
vTable=vWordApp.OlePropertyGet("ActiveDocument").OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", TableCount);
vTable.OleFunction("Cell",4, 1).OleFunction("Select");
Variant vShape =vWordApp.OlePropertyGet("Selection").OlePropertyGet("InlineShapes").OleFunction("AddPicture", strPicFile.c_str(),false,true);
vShape.OlePropertySet("LockAspectRatio",1);
//vShape.OlePropertySet("Height",100 );
//vShape.OlePropertySet("Width",100 );
}
}
}
//======================================================================
//======================================================================
//======================= 生成结束 =================================
//======================================================================
//======================================================================
//======================================================================
// 显示 Word界面
vWordApp.OlePropertySet("Visible", true);
/*
// 保存Word文档并退出
vWordApp.OlePropertyGet("ActiveDocument").OleProcedure("SaveAs", "D:\\aaa.doc");
vWordApp.OlePropertyGet("ActiveDocument").OleProcedure("Close");
Application->ProcessMessages();
vWordApp.OleProcedure("Quit");
Application->ProcessMessages();
vWordApp = Unassigned;
// 工作结束
MessageBox(0, "报表转换结束!","提示", MB_OK | MB_ICONINFORMATION);
*/
}
catch(...)
{
Application->MessageBoxA(L" 生成报表失败,请检查数据后重新操作。",L"错误",MB_OK|MB_ICONERROR);
}
本文介绍了在CB2010环境下,使用代码操作Word遇到的挑战,包括如何正确插入图片到指定位置,解决表格内容填充问题以及避免表格合并时影响后续单元格编号的技巧。提供了完整的报表生成代码示例。

3万+

被折叠的 条评论
为什么被折叠?



