delphi操作excel怎样插入一个可选的列?
var
  ExcelApp,WorkBook:Variant;
  i,j:integer;
begin
     ExcelApp:=CreateOleObject('Excel.Application');
     ExcelApp.WorkBooks.Add;
     WorkBook:=ExcelApp.WorkBooks.Open(D:\a.xls);
   ExcelApp.ActiveSheet.Columns[2].Insert;
   ExcelApp.Cells[1,2].Value := '性别'; 
end;
以上的代码插入的列是不可选的,怎样插入一个可选的列?下面可以选男或者女?

解决方案 »

  1.   

    有点难度,你知道在excel中如何实现吗?如果在excel中能实现,那么在这儿也能实现,否则。
      

  2.   

    即在excel设置,数据-有效性-设置-允许-选'序列'-来源设置‘男,女’,在excel中怎样转换成delphi代码
      

  3.   

    以下是一段vba代码,可以实现combox的功能,你研究一下转成delphi代码。
    Columns("J:J").Select
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="male,female"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
      

  4.   

    ExcelApp.ActiveSheet.Columns[2].Validation.add(xlValidateList,xlValidAlertStop, xlBetween,
      '男,女') ;
    加上这句应该就可以了,试试
      

  5.   

    谢谢zhnglicho,如果有效性为日期,开始日期为‘2011-1-1’,结束日期为'2012-1-1',这个又该怎么写?
      

  6.   

    呵呵,已经搞定,
       ExcelApp.ActiveSheet.Columns[5].Validation.add(xlValidateList,xlValidAlertStop, xlBetween,'男,女');
       ExcelApp.ActiveSheet.Columns[8].Validation.add(xlValidateDate,xlValidAlertStop, xlBetween,'1930-1-1','2099-12-31');
       ExcelApp.ActiveSheet.Columns[18].Validation.add(xlValidateWholeNumber,xlValidAlertStop, xlBetween,'100000','999999');
    谢谢zhnglicho
      

  7.   

    xlValidateList,xlValidAlertStop在那个单元啊?