CB2010操作Word代码

本文介绍了在CB2010环境下,使用代码操作Word遇到的挑战,包括如何正确插入图片到指定位置,解决表格内容填充问题以及避免表格合并时影响后续单元格编号的技巧。提供了完整的报表生成代码示例。

编译环境: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);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值