关于DBGRIDEH导出数据到CSV
2004-06-28 16:20
260 查看
在通常情况下使用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
- 将数据导出为csv文件(需要javacsv.jar)
- (转)关于MYSQL数据的导出导入与版本的转换
- 关于C#操作word导出数据
- PLSQL导出大量数据-超出excel限制,使用csv
- 关于Oracle数据和对象的导入导出 [转]
- 用两种不同的方法导出ORACLE 查询数据为CSV 文件 (python 代码 与 使用 utl_file 包)
- 通过SMExportToExcel控件导出DBGrid、DBGridEh里的数据
- php利用phpexcel插件实现数据的导入和导出(支持csv\xls\xlsx格式和超过26个字段列)
- (转)关于MYSQL数据的导出导入与版本的转换
- 解决PLSQL Developer导出CSV文件数据显示乱码和科学计数法问题
- MongoDB 数据导出mongoexport(可导出为txt或csv)
- PHP导出数据到CSV文件
- 关于Oracle数据导入导出的一些操作
- Android将SQLite数据表导出到csv格式文件
- 3.2:pandas数据的导入与导出【CSV,JSON】
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
- 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
- 导出数据到CSV和EXCEL文件,过长的数值被转义的解决方法