小编asg*_*012的帖子

如何设置Excel列类型和格式?

我正在将数据从CxDBGrid导出到Excel文件.我能够创建文件并在其中复制数据,但我在列格式化方面遇到了麻烦.由于我从数据库中提取数据,我希望电子表格能够反映出类型:NUMBER,VARCHAR2,DATE等等.我在视觉上创建了一个宏,去寻找VBA代码,并在Delphi项目中复制它:

sheet.Columns[K+2].NumberFormat := '0,000'; //Number
sheet.Columns[K+2].NumberFormat := '@'; //Text
sheet.Columns[K+2].NumberFormat := 'm/d/yyyy'; //Date
Run Code Online (Sandbox Code Playgroud)

数字格式在大多数情况下都可以正常工作,但其他两个则没有.当我打开生成的文件时,文本列显示为"Custom"类型,每个单元格显示"-64".如果我去编辑一个单元格,那么实际上就是正确的值.日期是另一个问题:数据库的格式是dd/mm/yyyy,如果我按原样将其提供给Excel,它会搞得一团糟.我尝试设置正确的格式,但Excel无法识别它.

有线索吗?

我也设置了列宽.这完美无瑕.

delphi excel quantumgrid delphi-xe2

5
推荐指数
2
解决办法
2万
查看次数

Delphi中的Maxmind geoip查询

我正在寻找geoip数据库(城市,国家,组织)查询一堆IP地址.我查看了http://www.maxmind.com/download/geoip/api/pascal/Sample.pas并对其进行了修改:

function LookupCountry(IPAddr: string) : string;
var
   GeoIP: TGeoIP;
   GeoIPCountry: TGeoIPCountry;
begin
  GeoIP := TGeoIP.Create('C:\Users\Albert\Documents\RAD Studio\Projects\Parser\geoip\GeoIP.dat');
  try
    if GeoIP.GetCountry(IPAddr, GeoIPCountry) = GEOIP_SUCCESS then
    begin
      Result := GeoIPCountry.CountryName;
    end
    else
    begin
      Result := IPAddr;
    end;
  finally
    GeoIP.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

但我对超过50'000个查询没有任何结果.我知道在使用csv时必须操作地址,但我有二进制db版本.我错过了什么?

谢谢!

delphi geoip

2
推荐指数
1
解决办法
1382
查看次数

android-获取textview ID作为字符串

我有以下XML TextView布局:

<TextView
    android:layout_width="100dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:id="@+id/txt0027_PDY911"
    android:tag="canPlot"
    style="@style/STD_Block_BEL.FieldLabel"
    android:text="0.00" />
Run Code Online (Sandbox Code Playgroud)

绑定了一个onTouch()事件。
在onTouch()中,我需要获取textview的ID(txt0027_PDY911)作为字符串,以便对其进行查询。 getId()返回一个整数-如何获取字符串?

谢谢

eclipse android textview

2
推荐指数
1
解决办法
1821
查看次数

Delphi排序首先包含两个字段的Stringlist

我正在实现本地缓存以加速DNS查找(IP->主机名).缓存从CSV文件("1.1.1.1host.example.com")加载到具有两个字段的TStringList中:

TStringList[0] := IPAddress;
TStringList[1] := HostName;
Run Code Online (Sandbox Code Playgroud)

因为我将通过IP查询TStringList,所以我想要对第一个字段进行排序:

TStringList.sorted := True;
Run Code Online (Sandbox Code Playgroud)

这会照顾它,以便我可以更快找到

IPResolved:=TStringList[TStringList.IndexOf('1.1.1.1'),1];
Run Code Online (Sandbox Code Playgroud)

谢谢!

delphi tstringlist delphi-xe2

1
推荐指数
1
解决办法
1904
查看次数

调用外部函数会给出不满意的前向或外部声明

在主单元中,我定义了一个函数,然后由具有适当参数的另一个表单调用:

unit Parser;
interface
uses
[...]

function SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;

type
TForm1 = class(TForm)
[...]
function SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;
end;

[...]

function TForm1.SaveGridLayoutToReg(ASaveViewName: AnsiString): Integer;
var
  AStoreKey: string;
  AOptions: TcxGridStorageOptions;
  LayoutRegistryKey: TRegistry;
begin
  AStoreKey := 'Software\KTRT\Stats';

  AOptions := [];
  cxGrid1TableView1.StoreToRegistry(AStoreKey, True, AOptions, ASaveViewName);

  LayoutRegistryKey.RootKey:= HKEY_CURRENT_USER;
  if LayoutRegistryKey.OpenKey(AStoreKey+'\'+ASaveViewName, false) then
    Result := 0
  else
    Result := -1;
end;
Run Code Online (Sandbox Code Playgroud)

在另一种形式:

[...]
uses Parser;

procedure TForm3.Button1Click(Sender: TObject);
var
LayoutRegistryKey: TRegistry;
AStoreLocation : AnsiString;
AStoreKey: string;
begin
  AStoreLocation := Edit1.Text;
  if Parser.SaveGridLayoutToReg(AStoreLocation) <> 0 …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe2

1
推荐指数
1
解决办法
2411
查看次数