最近看了一个软件,他的报表全是用EXCEL做的,就是软件目录下做了很多EXCEL文件,现在我感到奇怪的是他的文件中:单元格显示#NAME?,而点上去,上部又显示:=ADOQuery2_公司名称,这是怎么实现的?是不是数据库字段呀,可以直接将ADOQUERY查询内容导到此文件形成报表吗?

解决方案 »

  1.   

    读、取excel中记录的过程需要调用两个单元文件Excel2000,ComObj(当然Excel的单元文件看版本来定),如果是存储在容器中那么还需要用到OleServer,我这样取过一次:
    先设两个变体类型的变量:ExcelApp,ExcelSheet : Variant;
    主程序中可以通过opendialog来选取Excel文件,然后创建
             ExcelApp:=CreateOleObject('Excel.Application');
             Excelapp.WorkBooks.Open(opendialog1.FileName);
    这样就可以将你查询到的结果集写入:
             ExcelApp.WorkSheets[Excel表的页].cells[Excel表的行,Excel表的列] := 查询结果;
    如果很多记录可以循环来实现。