关于DBGRIDEH导出数据到CSV
2008-04-30 20:03
363 查看
在通常情况下使用DBGRIDEH导出的到CSV中的数据是这个样子的
"a","b","c"
可能我们并不希望它这样显示,有可能希望它显示成种状态
a,b,c
如果想这样,我们可以修改DBGRIDEH里面的DBGRIDEHImpExp.pas文件
具体修改如下:增加一个自己的导出到CSV的类
{ TMyDBGRIDEHExportAsCVS } TMyDBGRIDEHExportAsCVS = class(TDBGRIDEHExportAsText) private FSeparator: Char; protected procedure CheckFirstCell; override; procedure WriteTitle(ColumnsList: TColumnsEhList); override; procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); override; procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont; Background: TColor; Alignment: TAlignment; Text: String); override; public constructor Create; override; property Separator: Char read FSeparator write FSeparator; end;{ TMyDBGRIDEHExportAsCVS }procedure TMyDBGRIDEHExportAsCVS.CheckFirstCell;var s: String;begin if FirstCell = False then begin s := Separator; StreamWriteString(Stream, s);// Stream.Write(PChar(s)^, Length(s)) end else FirstCell := False;end;constructor TMyDBGRIDEHExportAsCVS.Create;begin Separator := ','; inherited Create;end;procedure TMyDBGRIDEHExportAsCVS.WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh);var s: String;begin CheckFirstCell; s := FColCellParamsEh.Text; StreamWriteString(Stream, s);// Stream.Write(PChar(s)^, Length(s));end;procedure TMyDBGRIDEHExportAsCVS.WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont; Background: TColor; Alignment: TAlignment; Text: String);var s: String;begin CheckFirstCell; s := Text; StreamWriteString(Stream, s);// Stream.Write(PChar(s)^, Length(s));end;procedure TMyDBGRIDEHExportAsCVS.WriteTitle(ColumnsList: TColumnsEhList);var i: Integer; s: String;begin CheckFirstRec; for i := 0 to ColumnsList.Count - 1 do begin s := ColumnsList[i].Title.Caption; if i <> ColumnsList.Count - 1 then s := s + Separator; StreamWriteString(Stream, s);// Stream.Write(PChar(s)^, Length(s)); end;end;
Good luck!
"a","b","c"
可能我们并不希望它这样显示,有可能希望它显示成种状态
a,b,c
如果想这样,我们可以修改DBGRIDEH里面的DBGRIDEHImpExp.pas文件
具体修改如下:增加一个自己的导出到CSV的类
{ TMyDBGRIDEHExportAsCVS } TMyDBGRIDEHExportAsCVS = class(TDBGRIDEHExportAsText) private FSeparator: Char; protected procedure CheckFirstCell; override; procedure WriteTitle(ColumnsList: TColumnsEhList); override; procedure WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh); override; procedure WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont; Background: TColor; Alignment: TAlignment; Text: String); override; public constructor Create; override; property Separator: Char read FSeparator write FSeparator; end;{ TMyDBGRIDEHExportAsCVS }procedure TMyDBGRIDEHExportAsCVS.CheckFirstCell;var s: String;begin if FirstCell = False then begin s := Separator; StreamWriteString(Stream, s);// Stream.Write(PChar(s)^, Length(s)) end else FirstCell := False;end;constructor TMyDBGRIDEHExportAsCVS.Create;begin Separator := ','; inherited Create;end;procedure TMyDBGRIDEHExportAsCVS.WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh);var s: String;begin CheckFirstCell; s := FColCellParamsEh.Text; StreamWriteString(Stream, s);// Stream.Write(PChar(s)^, Length(s));end;procedure TMyDBGRIDEHExportAsCVS.WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh; AFont: TFont; Background: TColor; Alignment: TAlignment; Text: String);var s: String;begin CheckFirstCell; s := Text; StreamWriteString(Stream, s);// Stream.Write(PChar(s)^, Length(s));end;procedure TMyDBGRIDEHExportAsCVS.WriteTitle(ColumnsList: TColumnsEhList);var i: Integer; s: String;begin CheckFirstRec; for i := 0 to ColumnsList.Count - 1 do begin s := ColumnsList[i].Title.Caption; if i <> ColumnsList.Count - 1 then s := s + Separator; StreamWriteString(Stream, s);// Stream.Write(PChar(s)^, Length(s)); end;end;
Good luck!
相关文章推荐
- 关于DBGRIDEH导出数据到CSV
- 关于DBGRIDEH导出数据到CSV
- Nodejs fastCSV 实现数据的csv格式导出
- PHP导出数据到CSV文件
- MySQL Workbench导出csv格式文件打开后发现数据乱码解决方法
- MySQL数据导入导出csv文件命令
- devexpress 数据导入(gridcontrol 导出 csv)
- C#导出数据到CSV和EXCEL文件,过长的数值被转义的解决方法
- PHP csv大量数据导出分割处理
- Oracle批量导出表数据到CSV文件
- MySQL 导出数据为csv格式的方法
- 关于SXSSFWorkbook导出大批量数据的问题
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
- C#中将DataTable中数据导出到csv文件中
- 关于C#中导出数据几种换行符
- mysql 导出 csv数据命令
- [转]关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
- MongoDb导出数据.CSV格式到EXCEL
- shell导出mysql数据成csv格式
- 关于MySQL数据导出导入