mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2026-03-13 09:24:25 +08:00
Add support for exporting grids as Wiki table markup
This commit is contained in:
BIN
res/icons/wikipedia-icon.png
Normal file
BIN
res/icons/wikipedia-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 381 B |
@@ -67,7 +67,7 @@ type
|
||||
end;
|
||||
TSQLBatch = TObjectList<TSQLSentence>;
|
||||
|
||||
TGridExportFormat = (efUnknown, efCSV, efHTML, efXML, efSQL, efLaTeX);
|
||||
TGridExportFormat = (efUnknown, efCSV, efHTML, efXML, efSQL, efLaTeX, efWiki);
|
||||
|
||||
|
||||
{$I const.inc}
|
||||
@@ -644,6 +644,20 @@ begin
|
||||
end;
|
||||
Header := Header + '}' + CRLF;
|
||||
end;
|
||||
|
||||
efWiki: begin
|
||||
Header := '|| ';
|
||||
Separator := ' || ';
|
||||
Encloser := '';
|
||||
Terminator := ' ||'+CRLF;
|
||||
Col := Grid.Header.Columns.GetFirstVisibleColumn;
|
||||
while Col > NoColumn do begin
|
||||
Header := Header + '*' + Grid.Header.Columns[Col].Text + '*' + Separator;
|
||||
Col := Grid.Header.Columns.GetNextVisibleColumn(Col);
|
||||
end;
|
||||
Delete(Header, Length(Header)-Length(Separator)+1, Length(Separator));
|
||||
Header := Header + Terminator;
|
||||
end;
|
||||
end;
|
||||
StreamWrite(S, Header);
|
||||
|
||||
@@ -679,6 +693,8 @@ begin
|
||||
tmp := tmp + ') VALUES (';
|
||||
end;
|
||||
|
||||
efWiki: tmp := TrimLeft(Separator);
|
||||
|
||||
else tmp := '';
|
||||
end;
|
||||
|
||||
@@ -704,17 +720,17 @@ begin
|
||||
tmp := tmp + ' <td class="col' + IntToStr(Col) + '">' + Data + '</td>' + CRLF;
|
||||
end;
|
||||
|
||||
efCSV, efLaTeX: begin
|
||||
efCSV, efLaTeX, efWiki: begin
|
||||
// Escape encloser characters inside data per de-facto CSV.
|
||||
Data := StringReplace(Data, Encloser, Encloser+Encloser, [rfReplaceAll]);
|
||||
// Special handling for NULL (MySQL-ism, not de-facto CSV: unquote value)
|
||||
if GridData.IsNull(Col) then
|
||||
Data := 'NULL'
|
||||
else
|
||||
if GridData.IsNull(Col) then begin
|
||||
Data := 'NULL';
|
||||
if ExportFormat = efWiki then
|
||||
Data := '_'+Data+'_';
|
||||
end else
|
||||
Data := Encloser + Data + Encloser;
|
||||
// Add cell.
|
||||
if tmp <> '' then tmp := tmp + Separator;
|
||||
tmp := tmp + Data;
|
||||
tmp := tmp + Data + Separator;
|
||||
end;
|
||||
|
||||
efXML: begin
|
||||
@@ -746,8 +762,10 @@ begin
|
||||
case ExportFormat of
|
||||
efHTML:
|
||||
tmp := tmp + ' </tr>' + CRLF;
|
||||
efCSV, efLaTeX:
|
||||
efCSV, efLaTeX, efWiki: begin
|
||||
Delete(tmp, Length(tmp)-Length(Separator)+1, Length(Separator));
|
||||
tmp := tmp + Terminator;
|
||||
end;
|
||||
efXML:
|
||||
tmp := tmp + #9'</row>' + CRLF;
|
||||
efSQL: begin
|
||||
|
||||
@@ -1853,6 +1853,9 @@ object MainForm: TMainForm
|
||||
object CopyselectedrowsasLaTeXtable1: TMenuItem
|
||||
Action = actCopyAsLaTeX
|
||||
end
|
||||
object CopyselectedrowsasWikitable2: TMenuItem
|
||||
Action = actCopyAsWiki
|
||||
end
|
||||
object Exportdata1: TMenuItem
|
||||
Action = actExportData
|
||||
end
|
||||
@@ -2622,6 +2625,13 @@ object MainForm: TMainForm
|
||||
ImageIndex = 10
|
||||
OnExecute = actDataSaveBlobToFileExecute
|
||||
end
|
||||
object actCopyAsWiki: TAction
|
||||
Category = 'Export/Import'
|
||||
Caption = 'Copy selected rows as Wiki table'
|
||||
Enabled = False
|
||||
ImageIndex = 154
|
||||
OnExecute = actCopyDataExecute
|
||||
end
|
||||
end
|
||||
object SaveDialog2: TSaveDialog
|
||||
DefaultExt = 'reg'
|
||||
@@ -2651,7 +2661,7 @@ object MainForm: TMainForm
|
||||
Left = 104
|
||||
Top = 160
|
||||
Bitmap = {
|
||||
494C01019A009C00040010001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
|
||||
494C01019B009C00040010001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
|
||||
0000000000003600000028000000400000007002000001002000000000000070
|
||||
0200000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
@@ -2674,96 +2684,96 @@ object MainForm: TMainForm
|
||||
86FF1B5686FF1B5686FF1B5686FF1B5686FF0000000000000052FAFAF9FFF7F7
|
||||
F7FFFAFAFAFFFBFBFBFFFCFCFCFFFEFEFEFFFCFCFCFFF1F1F1FFD4D4D4FF9A9A
|
||||
9AE00000002F0000000100000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000800000001C0000000000000000000000060000008F0000
|
||||
0005000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000002D76ACFF5198C7FF4D93C3FF4B90
|
||||
C2FF4B8EC0FF4B8EC0FFC0E9EAFF76CDDFFF74CDDFFFABE1E7FF4783BAFF4580
|
||||
B9FF437DB7FF437CB7FF467EB8FF1B5686FF0000000000000052F9F9F9FFF7F7
|
||||
F7FFFAFAFAFFF7F7F7FFEFEFEFFFF8F8F8FFF9F9F9FFEEEEEEFFC9C9C9FFF5F5
|
||||
F5FF9A9A9AE00000002E00000001000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000030000000FD0000009300000000000000000000005B000000FE0000
|
||||
004E000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000002F79AFFF5099C7FF3982B4FF296F
|
||||
A4FF286CA0FF26699CFF246598FF226294FF205F91FF1E5C8DFF1D5A8AFF1C58
|
||||
88FF1B5686FF2B669AFF447DB7FF1B5686FF0000000000000052F9F9F9FFF6F6
|
||||
F6FFF9F9F9FFFBFBFBFF9D9D9DFFAEAEAEFFA5A5A5FFCACACAFFEBEBEBFFD4D4
|
||||
D4FFDBDBDBFF878787C900000029000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
00000000009C000000FE000000F50000001E00000000000000C7000000FE0000
|
||||
00B0000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000317CB3FF519CC9FF2D76ACFF76E4
|
||||
A1FF74E39FFF72E39EFF70E29CFF6EE29BFF6CE29AFF6BE199FF69E198FF67E1
|
||||
96FF66E095FF1B5686FF447EB8FF1B5686FF0000000000000052F2F2F1FFF1F1
|
||||
F0FFF7F7F7FFFAFAFAFF7D7D7DFFE3E3E3FFF1F1F1FF989898FFF8F8F8FFEAEA
|
||||
EAFFEEEEEEFFF8F8F8FE00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0017000000F7000000FD0000006B0000009B00000038000000FE000000FA0000
|
||||
00BA0000001A0000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000327EB6FF52A0CBFF2F79AFFF55DD
|
||||
8AFF54DC88FF78E4A2FF76E4A1FF74E39FFF4EDA81FF4DDA7EFF4BD97CFF4AD9
|
||||
7AFF49D879FF1C5888FF4582B9FF1B5686FF0000000000000052ECECECFFD7D7
|
||||
D7FF545454FFC5C5C5FF828282FFCACACAFFADADADFF878787FFBBBBBBFFFAFA
|
||||
FAFF565656FFD0D0D0FF00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
007D000000FE000000CB00000000000000AC000000C6000000FE000000AC0000
|
||||
00410000007D0000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003381B8FF55A4CDFF317CB3FF69C9
|
||||
5AFF3BBA2FFF4ED572FF46CA58FF23CD58FF53BF46FFA8BD57FFE4A73AFFFC9F
|
||||
2EFFFF9B2CFF1D5A8AFF4886BCFF1B5686FF0000000000000052EAEAE9FFF3F3
|
||||
F3FF717171FFF8F8F8FF808080FFAEAEAEFFA2A2A2FFE4E4E4FFB3B3B3FF9B9B
|
||||
9BFFBCBCBCFFFEFEFEFF00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
9BFFBCBCBCFFFEFEFEFF00000052000000000000000000000000000000050000
|
||||
00E4000000FE0000005F0000000000000048000000FE000000FE0000003F0000
|
||||
0001000000C00000000300000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003483BAFF58A8CFFF327EB6FF6ECB
|
||||
5EFF6CCB5DFF3AB926FF3CB92BFFD9BF63FFFFBA62FFFFB960FFFFB85EFFFFB7
|
||||
5DFFFFB65BFF1E5C8DFF4A8ABEFF1C5888FF0000000000000052E8E8E8FFF2F2
|
||||
F1FF717170FFF6F6F6FF727272FFDDDDDDFFE0E0E0FF9F9F9FFFD0D0D0FF6161
|
||||
61FFFCFCFCFFFCFCFCFF00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
61FFFCFCFCFFFCFCFCFF00000052000000000000000000000000000000580000
|
||||
00FE000000E800000007000000000000008D000000FE000000CF000000000000
|
||||
00000000007C0000005100000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003483BAFF58AAD1FF3381B8FF72CE
|
||||
62FF3DBD29FF3DBC29FFEFC169FFFFBF68FFFFBD66FFFFBC65FFE4C486FF98C8
|
||||
AEFF61D9EBFF205F91FF4B8DBFFF1D5A8AFF0000000000000052AFAFAFFFF0F0
|
||||
EFFF707070FFF4F4F4FF797979FFB0B0AFFFB1B1B1FFDDDDDDFF6A6A6AFFB8B8
|
||||
B8FFDDDDDDFFFCFCFCFF00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
B8FFDDDDDDFFFCFCFCFF00000052000000000000000000000000000000C40000
|
||||
00FE000000830000000000000009000000EC000000FE000000BC000000000000
|
||||
00000000001B000000B600000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003483BAFF58ACD1FF3483BAFF94BD
|
||||
31FF93BC30FFD8C86BFFFFC36EFFFFC26CFFFFC16BFFFFC069FF9ECCB4FF5EDE
|
||||
F8FF85E5F9FF226294FF4B8FC1FF1E5C8DFF0000000000000052B1B1B1FF8C8C
|
||||
8BFF707070FF949494FF949494FFECECECFFEFEFEEFF969696FF8D8D8DFFF6F6
|
||||
F6FF747474FFE7E7E7FF00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
F6FF747474FFE7E7E7FF00000052000000000000000000000033000000FD0000
|
||||
00FA0000001C0000000000000060000000FE000000E70000009C000000380000
|
||||
000000000000000000B000000023000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003483BAFF58ADD3FF3483BAFFFFC8
|
||||
74FFFFC773FFFFC772FFFFC571FFFFC470FFFFC36FFFFFC36EFF6EDEEEFF8DE7
|
||||
FAFF8BE7FAFF246598FF4C92C2FF205F91FF0000000000000052EAEAEAFFECEC
|
||||
EBFFEEEEEDFFEAEAE9FFF2F2F1FFF3F3F2FFF4F4F4FFF5F5F5FFF6F6F6FFF7F7
|
||||
F6FFEFEFEFFFFAFAFAFF00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
F6FFEFEFEFFFFAFAFAFF000000520000000000000000000000A0000000FE0000
|
||||
00B10000000000000000000000CD000000FE0000008800000020000000B30000
|
||||
0000000000000000004F00000084000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003483BAFF59B0D4FF4294C3FF3483
|
||||
BAFF3483BAFF3381B8FF327EB6FF317CB3FF2F79AFFF2D76ACFF2B73A8FF296F
|
||||
A4FF286CA0FF367BADFF4E96C4FF226294FF0000000000000052EAEAE9FFE9E9
|
||||
E8FFE8E8E7FFE6E6E5FFEFEFEFFFF1F1F0FFF2F2F1FFF3F3F2FFF3F3F3FFEEEE
|
||||
EEFFE9E9E9FFF9F9F9FF00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
EEFFE9E9E9FFF9F9F9FF000000520000000000000031000000F8000000FE0000
|
||||
00730000000400000062000000FE000000FE000000420000000D000000CF0000
|
||||
006F0000000D0000002D000000E4000000210000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003483BAFF5DB3D6FF5AB0D4FF59AF
|
||||
D4FF58AED3FF5AADD3FF5AADD2FF5AAAD1FF59A9D0FF57A7CFFF55A3CDFF52A0
|
||||
CBFF519EC9FF519CC9FF539CC8FF246598FF0000000000000052F0EFEFFFE4E4
|
||||
E3FFE7E6E5FFEAEAE9FFEDEDECFFEEEEEDFFEFEFEEFFF0F0EFFFF0F0EFFFEEEE
|
||||
EEFFEEEEEEFFF8F8F8FF00000052000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
EEFFEEEEEEFFF8F8F8FF00000052000000000000005D00000074000000710000
|
||||
00790000002B000000760000006B0000006F0000007B0000004E0000007D0000
|
||||
00730000003E0000006100000074000000500000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003483BAFF3483BAFF3483BAFF3483
|
||||
BAFF3483BAFF3483BAFF3483BAFF3381B8FF327EB6FF317CB3FF2F79AFFF2D76
|
||||
@@ -8162,6 +8172,9 @@ object MainForm: TMainForm
|
||||
object CopyselectedrowsasLaTeXtable2: TMenuItem
|
||||
Action = actCopyAsLaTeX
|
||||
end
|
||||
object CopyselectedrowsasWikitable1: TMenuItem
|
||||
Action = actCopyAsWiki
|
||||
end
|
||||
end
|
||||
object Exportdata2: TMenuItem
|
||||
Action = actExportData
|
||||
@@ -8269,9 +8282,10 @@ object MainForm: TMainForm
|
||||
object SaveDialogExportData: TSaveDialog
|
||||
DefaultExt = 'csv'
|
||||
Filter =
|
||||
'CSV-Files (*.csv)|*.csv|Hypertext-Files (*.html)|*.html|XML-File' +
|
||||
's (*.xml)|*.xml|SQL script (*.sql)|*.sql|LaTeX table (*.latex)|*' +
|
||||
'.latex'
|
||||
'Comma separated values (*.csv)|*.csv|Hypertext markup language (' +
|
||||
'*.html)|*.html|Extensible markup language (*.xml)|*.xml|Structur' +
|
||||
'ed query language (*.sql)|*.sql|LaTeX table (*.latex)|*.latex|Wi' +
|
||||
'ki markup table (*.wiki)|*.wiki'
|
||||
Options = [ofOverwritePrompt, ofEnableSizing]
|
||||
OnTypeChange = SaveDialogExportDataTypeChange
|
||||
Left = 40
|
||||
|
||||
@@ -488,6 +488,9 @@ type
|
||||
actCopyAsLaTeX: TAction;
|
||||
CopyselectedrowsasLaTeXtable1: TMenuItem;
|
||||
CopyselectedrowsasLaTeXtable2: TMenuItem;
|
||||
actCopyAsWiki: TAction;
|
||||
CopyselectedrowsasWikitable1: TMenuItem;
|
||||
CopyselectedrowsasWikitable2: TMenuItem;
|
||||
procedure actCreateDBObjectExecute(Sender: TObject);
|
||||
procedure menuConnectionsPopup(Sender: TObject);
|
||||
procedure actExitApplicationExecute(Sender: TObject);
|
||||
@@ -2263,6 +2266,8 @@ begin
|
||||
ExportFormat := efSQL
|
||||
else if act = actCopyAsLaTeX then
|
||||
ExportFormat := efLaTeX
|
||||
else if act = actCopyAsWiki then
|
||||
ExportFormat := efWiki
|
||||
else
|
||||
ExportFormat := efUnknown;
|
||||
GridExport(ActiveGrid, S, ExportFormat);
|
||||
@@ -4182,6 +4187,7 @@ begin
|
||||
actCopyAsXML.Enabled := inDataOrQueryTabNotEmpty;
|
||||
actCopyAsSQL.Enabled := inDataOrQueryTabNotEmpty;
|
||||
actCopyAsLaTeX.Enabled := inDataOrQueryTabNotEmpty;
|
||||
actCopyAsWiki.Enabled := inDataOrQueryTabNotEmpty;
|
||||
actExportData.Enabled := inDataOrQueryTabNotEmpty;
|
||||
actDataSetNull.Enabled := inDataOrQueryTab and Assigned(Results) and Assigned(Grid.FocusedNode);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user