Сохранение и загрузка, импорт и экспорт Delphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studio https://delphi-hlp.ru/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport.feed 2022-09-13T04:50:12+07:00 Delphi help info@delphi-hlp.ru Joomla! - Open Source Content Management TStringGrid --> HTML 2017-08-11T19:02:50+07:00 2017-08-11T19:02:50+07:00 https://delphi-hlp.ru/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/tstringgrid-html.html Super User toto44@inbox.ru <p><span style="font-family: 'Courier New'; font-size: 8pt;"> </span><span style="font-family: 'MS Sans Serif'; font-size: 8pt;"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> SGridToHtml(SG: TStringgrid; Dest: TMemo; BorderSize: Integer);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> i, p: integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> SStyle1, SStyle2, Text: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Clear;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'&lt;html&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'&lt;body&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'  &lt;table border="'</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(BorderSize) + </span><span class="f_CodeExample" style="color: #ff0000;">'" width="'</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    IntToStr(SG.Width) + </span><span class="f_CodeExample" style="color: #ff0000;">'" height="'</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(SG.Width) + </span><span class="f_CodeExample" style="color: #ff0000;">'"&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> i := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> SG.RowCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'  &lt;tr&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> p := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> SG.ColCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      SStyle1 := </span><span class="f_CodeExample" style="color: #ff0000;">''</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      SStyle2 := </span><span class="f_CodeExample" style="color: #ff0000;">''</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> fsbold </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span><span class="f_CodeExample" style="color: #000000;"> SG.Font.Style </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle1 := SStyle1 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;b&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle2 := SStyle2 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/b&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> fsitalic </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span><span class="f_CodeExample" style="color: #000000;"> SG.Font.Style </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle1 := SStyle1 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;i&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle2 := SStyle2 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/i&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> fsunderline </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span><span class="f_CodeExample" style="color: #000000;"> SG.Font.Style </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle1 := SStyle1 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;u&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle2 := SStyle2 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/u&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      Text := sg.Cells[p, i];</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Text = </span><span class="f_CodeExample" style="color: #ff0000;">''</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Text := </span><span class="f_CodeExample" style="color: #ff0000;">' '</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'    &lt;td width="'</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(sg.ColWidths[p]) +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        </span><span class="f_CodeExample" style="color: #ff0000;">'" height="'</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(sg.RowHeights[p]) +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        </span><span class="f_CodeExample" style="color: #ff0000;">'"&gt;&lt;font color="#'</span><span class="f_CodeExample" style="color: #000000;"> + IntToHex(sg.Font.Color, </span><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;">) +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        </span><span class="f_CodeExample" style="color: #ff0000;">'" face="'</span><span class="f_CodeExample" style="color: #000000;"> + SG.Font.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Name</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #ff0000;">'"&gt;'</span><span class="f_CodeExample" style="color: #000000;"> + SStyle1 +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        Text + SStyle2 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/font&gt;&lt;/td&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'  &lt;/tr&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'  &lt;/table&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/body&gt;'</span><span class="f_CodeExample" style="color: #000000;">);;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/html&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// Example, Beispiel</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TFormCSVInport.Button6Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> SGridToHtml(StringGrid1, Memo1, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Memo1.Lines.SaveToFile(</span><span class="f_CodeExample" style="color: #ff0000;">'c:\test.html'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/tstringgrid-html.html">Подробнее...</a></p> <p><span style="font-family: 'Courier New'; font-size: 8pt;"> </span><span style="font-family: 'MS Sans Serif'; font-size: 8pt;"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> SGridToHtml(SG: TStringgrid; Dest: TMemo; BorderSize: Integer);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> i, p: integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> SStyle1, SStyle2, Text: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Clear;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'&lt;html&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'&lt;body&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'  &lt;table border="'</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(BorderSize) + </span><span class="f_CodeExample" style="color: #ff0000;">'" width="'</span><span class="f_CodeExample" style="color: #000000;"> +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    IntToStr(SG.Width) + </span><span class="f_CodeExample" style="color: #ff0000;">'" height="'</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(SG.Width) + </span><span class="f_CodeExample" style="color: #ff0000;">'"&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> i := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> SG.RowCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'  &lt;tr&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> p := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> SG.ColCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      SStyle1 := </span><span class="f_CodeExample" style="color: #ff0000;">''</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      SStyle2 := </span><span class="f_CodeExample" style="color: #ff0000;">''</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> fsbold </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span><span class="f_CodeExample" style="color: #000000;"> SG.Font.Style </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle1 := SStyle1 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;b&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle2 := SStyle2 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/b&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> fsitalic </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span><span class="f_CodeExample" style="color: #000000;"> SG.Font.Style </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle1 := SStyle1 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;i&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle2 := SStyle2 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/i&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> fsunderline </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span><span class="f_CodeExample" style="color: #000000;"> SG.Font.Style </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle1 := SStyle1 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;u&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        SStyle2 := SStyle2 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/u&gt;'</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      Text := sg.Cells[p, i];</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Text = </span><span class="f_CodeExample" style="color: #ff0000;">''</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> Text := </span><span class="f_CodeExample" style="color: #ff0000;">' '</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'    &lt;td width="'</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(sg.ColWidths[p]) +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        </span><span class="f_CodeExample" style="color: #ff0000;">'" height="'</span><span class="f_CodeExample" style="color: #000000;"> + IntToStr(sg.RowHeights[p]) +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        </span><span class="f_CodeExample" style="color: #ff0000;">'"&gt;&lt;font color="#'</span><span class="f_CodeExample" style="color: #000000;"> + IntToHex(sg.Font.Color, </span><span class="f_CodeExample" style="color: #800000;">6</span><span class="f_CodeExample" style="color: #000000;">) +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        </span><span class="f_CodeExample" style="color: #ff0000;">'" face="'</span><span class="f_CodeExample" style="color: #000000;"> + SG.Font.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Name</span><span class="f_CodeExample" style="color: #000000;"> + </span><span class="f_CodeExample" style="color: #ff0000;">'"&gt;'</span><span class="f_CodeExample" style="color: #000000;"> + SStyle1 +</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">        Text + SStyle2 + </span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/font&gt;&lt;/td&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'  &lt;/tr&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'  &lt;/table&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/body&gt;'</span><span class="f_CodeExample" style="color: #000000;">);;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Dest.Lines.Add(</span><span class="f_CodeExample" style="color: #ff0000;">'&lt;/html&gt;'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// Example, Beispiel</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TFormCSVInport.Button6Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> SGridToHtml(StringGrid1, Memo1, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Memo1.Lines.SaveToFile(</span><span class="f_CodeExample" style="color: #ff0000;">'c:\test.html'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/tstringgrid-html.html">Подробнее...</a></p> TStringGrid и файловый поток 2017-08-11T19:01:55+07:00 2017-08-11T19:01:55+07:00 https://delphi-hlp.ru/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/tstringgrid-i-fajlovyj-potok.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Какое наилучшее решение для сохранения экземпляра TStringGrid (150x10)?</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Если вы хотите сохранить это на диске:</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/tstringgrid-i-fajlovyj-potok.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Какое наилучшее решение для сохранения экземпляра TStringGrid (150x10)?</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Если вы хотите сохранить это на диске:</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/tstringgrid-i-fajlovyj-potok.html">Подробнее...</a></p> XLS ---> TStringGrid 2017-08-11T18:57:14+07:00 2017-08-11T18:57:14+07:00 https://delphi-hlp.ru/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/xls-tstringgrid.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Xls_</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">To</span><span class="f_CodeExample" style="color: #000000;">_StringGrid(AGrid: TStringGrid; AXLSFile: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): Boolean;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">const</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> xlCellTypeLastCell = </span><span class="f_CodeExample" style="color: #800000;">$0000000B</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> XLApp, Sheet: OLEVariant;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> RangeMatrix: Variant;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> x, y, k, r: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Screen.Cursor:=crAppStart;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Result := False;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> XLApp := CreateOleObject(</span><span class="f_CodeExample" style="color: #ff0000;">'Excel.Application'</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">try</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    XLApp.Visible := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    XLApp.Workbooks.Open(AXLSFile);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">];</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    x := XLApp.ActiveCell.Row;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    y := XLApp.ActiveCell.Column;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    AGrid.RowCount := x;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    AGrid.ColCount := y;  </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    RangeMatrix := XLApp.Range[</span><span class="f_CodeExample" style="color: #ff0000;">'A1'</span><span class="f_CodeExample" style="color: #000000;">, XLApp.Cells.Item[X, Y]].Value;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    k := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">repeat</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> r := </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> y </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">       AGrid.Cells[(r - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">), (k - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">)] := RangeMatrix[K, R];</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">      Inc(k, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">      AGrid.RowCount := k + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;  </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">until</span><span class="f_CodeExample" style="color: #000000;"> k &gt; x;  </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    RangeMatrix := Unassigned;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">finally</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">not</span><span class="f_CodeExample" style="color: #000000;"> VarIsEmpty(XLApp) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      XLApp.Quit;  </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      XLAPP := Unassigned;  </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      Sheet := Unassigned;  </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      Result := True;  </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;  </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Screen.Cursor:=crDefault;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Xls_</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">To</span><span class="f_CodeExample" style="color: #000000;">_StringGrid(AGrid: TStringGrid; AXLSFile: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): Boolean;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">const</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> xlCellTypeLastCell = </span><span class="f_CodeExample" style="color: #800000;">$0000000B</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> XLApp, Sheet: OLEVariant;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> RangeMatrix: Variant;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> x, y, k, r: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Screen.Cursor:=crAppStart;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Result := False;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> XLApp := CreateOleObject(</span><span class="f_CodeExample" style="color: #ff0000;">'Excel.Application'</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">try</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    XLApp.Visible := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    XLApp.Workbooks.Open(AXLSFile);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    Sheet := XLApp.Workbooks[ExtractFileName(AXLSFile)].WorkSheets[</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">];</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    x := XLApp.ActiveCell.Row;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    y := XLApp.ActiveCell.Column;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    AGrid.RowCount := x;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    AGrid.ColCount := y;  </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    RangeMatrix := XLApp.Range[</span><span class="f_CodeExample" style="color: #ff0000;">'A1'</span><span class="f_CodeExample" style="color: #000000;">, XLApp.Cells.Item[X, Y]].Value;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    k := </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">repeat</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> r := </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> y </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">       AGrid.Cells[(r - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">), (k - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">)] := RangeMatrix[K, R];</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">      Inc(k, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">      AGrid.RowCount := k + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">;  </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">until</span><span class="f_CodeExample" style="color: #000000;"> k &gt; x;  </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    RangeMatrix := Unassigned;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">finally</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">not</span><span class="f_CodeExample" style="color: #000000;"> VarIsEmpty(XLApp) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      XLApp.Quit;  </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      XLAPP := Unassigned;  </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      Sheet := Unassigned;  </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">      Result := True;  </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;  </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Screen.Cursor:=crDefault;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> Получить содержимое TStringGrid или TDrawGrid в виде строки 2017-08-11T19:03:29+07:00 2017-08-11T19:03:29+07:00 https://delphi-hlp.ru/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/poluchit-soderzhimoe-tstringgrid-ili-tdrawgrid-v-vide-stroki.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{ </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> This copies the contents of a TstringGrid/TDrawGrid (only Text!!) into a string. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Tabs are inserted between the columns, CR+LF between rows. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> use</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Grids;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{...}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{ we need this Cracker Class because the Col/RowCount property </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> is not public in TCustomGrid }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">type</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   TGridHack = </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">class</span><span class="f_CodeExample" style="color: #000000;">(TCustomGrid);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetstringGridText(_Grid: TCustomGrid): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Grid: TGridHack;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Row, Col: Integer;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   s: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">// Cast the paramter to a TGridHack, so we can access protected properties </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Grid   := TGridHack(_Grid);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   Result := </span><span class="f_CodeExample" style="color: #ff0000;">''</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">// for all rows, then for all columns </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> Row := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> Grid.RowCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> Col := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> Grid.ColCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">       </span><span class="f_CodeExample" style="color: #000080;">// the first column does not need the tab </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Col &gt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">         Result := Result + </span><span class="f_CodeExample" style="color: #ff0000;">#9</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">       Result := Result + Grid.GetEditText(Col, Row);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     Result := Result + </span><span class="f_CodeExample" style="color: #ff0000;">#13#10</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{ </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> This copies the contents of a TstringGrid/TDrawGrid (only Text!!) into a string. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Tabs are inserted between the columns, CR+LF between rows. </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> use</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Grids;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{...}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{ we need this Cracker Class because the Col/RowCount property </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> is not public in TCustomGrid }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">type</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   TGridHack = </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">class</span><span class="f_CodeExample" style="color: #000000;">(TCustomGrid);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetstringGridText(_Grid: TCustomGrid): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Grid: TGridHack;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Row, Col: Integer;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   s: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">// Cast the paramter to a TGridHack, so we can access protected properties </span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Grid   := TGridHack(_Grid);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   Result := </span><span class="f_CodeExample" style="color: #ff0000;">''</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">// for all rows, then for all columns </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> Row := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> Grid.RowCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> Col := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> Grid.ColCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">       </span><span class="f_CodeExample" style="color: #000080;">// the first column does not need the tab </span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">      </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> Col &gt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">         Result := Result + </span><span class="f_CodeExample" style="color: #ff0000;">#9</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">       Result := Result + Grid.GetEditText(Col, Row);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">     Result := Result + </span><span class="f_CodeExample" style="color: #ff0000;">#13#10</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> Сохранение и чтение TStringGrid 2017-08-11T19:04:26+07:00 2017-08-11T19:04:26+07:00 https://delphi-hlp.ru/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/sokhranenie-i-chtenie-tstringgrid.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"> </p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> SaveGrid;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> f: textfile;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> x, y: integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> assignfile(f, </span><span class="f_CodeExample" style="color: #ff0000;">'Filename'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> rewrite(f);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> writeln(f, stringgrid.colcount);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> writeln(f, stringgrid.rowcount);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> X := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> stringgrid.colcount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> y := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> stringgrid.rowcount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      writeln(F, stringgrid.cells[x, y]);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> closefile(f);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/sokhranenie-i-chtenie-tstringgrid.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"> </p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> SaveGrid;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> f: textfile;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> x, y: integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> assignfile(f, </span><span class="f_CodeExample" style="color: #ff0000;">'Filename'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> rewrite(f);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> writeln(f, stringgrid.colcount);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> writeln(f, stringgrid.rowcount);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> X := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> stringgrid.colcount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> y := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> stringgrid.rowcount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      writeln(F, stringgrid.cells[x, y]);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> closefile(f);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/sokhranenie-i-chtenie-tstringgrid.html">Подробнее...</a></p> Экспорт StringGrid в исполняемый файл *.EXE 2017-08-11T19:01:04+07:00 2017-08-11T19:01:04+07:00 https://delphi-hlp.ru/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/eksport-stringgrid-v-ispolnyaemyj-fajl-exe.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000; font-weight: bold;">Экспорт</span><span style="color: #000000; font-weight: bold;"> StringGrid </span><span style="color: #000000; font-weight: bold;">в</span> <span style="color: #000000; font-weight: bold;">исполняемый</span> <span style="color: #000000; font-weight: bold;">файл</span><span style="color: #000000; font-weight: bold;"> *.EXE</span></span><br /><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><br /><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Как</span><span style="color: #000000;">-</span><span style="color: #000000;">то</span> <span style="color: #000000;">раз</span> <span style="color: #000000;">мне</span> <span style="color: #000000;">понадобилось</span> <span style="color: #000000;">из</span> <span style="color: #000000;">моей</span> <span style="color: #000000;">программы</span> <span style="color: #000000;">извлекать</span> <span style="color: #000000;">все</span> <span style="color: #000000;">содержимое</span><span style="color: #000000;"> StringGrid'a </span><span style="color: #000000;">в</span><span style="color: #000000;"> exe-</span><span style="color: #000000;">файл</span><span style="color: #000000;">. </span><span style="color: #000000;">В</span> <span style="color: #000000;">данном</span> <span style="color: #000000;">случае</span> <span style="color: #000000;">можно</span> <span style="color: #000000;">конечно</span> <span style="color: #000000;">писать</span> <span style="color: #000000;">свой</span> <span style="color: #000000;">собственный</span> <span style="color: #000000;">компилятор</span><span style="color: #000000;">, </span><span style="color: #000000;">но</span><span style="color: #000000;">, </span><span style="color: #000000;">согласитесь</span><span style="color: #000000;">, </span><span style="color: #000000;">это</span> <span style="color: #000000;">лишнее</span><span style="color: #000000;">. </span><span style="color: #000000;">Гораздо</span> <span style="color: #000000;">проще</span> <span style="color: #000000;">заранее</span> <span style="color: #000000;">написать</span><span style="color: #000000;"> exe-</span><span style="color: #000000;">файл</span> <span style="color: #000000;">и</span> <span style="color: #000000;">поместить</span> <span style="color: #000000;">его</span> <span style="color: #000000;">в</span> <span style="color: #000000;">ресурсы</span> <span style="color: #000000;">нашей</span> <span style="color: #000000;">программы</span><span style="color: #000000;">. </span><span style="color: #000000;">А</span> <span style="color: #000000;">потом</span> <span style="color: #000000;">извлекать</span> <span style="color: #000000;">его</span> <span style="color: #000000;">оттуда</span><span style="color: #000000;">, </span><span style="color: #000000;">и</span> <span style="color: #000000;">записывать</span> <span style="color: #000000;">в</span> <span style="color: #000000;">его</span> <span style="color: #000000;">ресурсы</span> <span style="color: #000000;">содержимое</span><span style="color: #000000;"> StringGrid'a. </span><span style="color: #000000;">Заманчиво</span> <span style="color: #000000;">звучит</span><span style="color: #000000;">, </span><span style="color: #000000;">правда</span><span style="color: #000000;">? </span><span style="color: #000000;">Тогда</span> <span style="color: #000000;">перейдем</span> <span style="color: #000000;">к</span> <span style="color: #000000;">реализации</span><span style="color: #000000;">.</span></span><br /><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><br /><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">1. </span><span style="color: #000000;">Создание</span><span style="color: #000000;"> exe-</span><span style="color: #000000;">файла</span><span style="color: #000000;">, </span><span style="color: #000000;">в</span> <span style="color: #000000;">который</span> <span style="color: #000000;">поместим</span> <span style="color: #000000;">в</span> <span style="color: #000000;">конце</span> <span style="color: #000000;">содержимое</span><span style="color: #000000;"> StringGrid'a.</span></span><br /><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><br /><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Так</span> <span style="color: #000000;">как</span> <span style="color: #000000;">данная</span> <span style="color: #000000;">статья</span> <span style="color: #000000;">посвящена</span> <span style="color: #000000;">языку</span> <span style="color: #000000;">Делфи</span><span style="color: #000000;">, </span><span style="color: #000000;">то</span> <span style="color: #000000;">и</span> <span style="color: #000000;">писать</span> <span style="color: #000000;">этот</span><span style="color: #000000;"> exe-</span><span style="color: #000000;">файл</span> <span style="color: #000000;">я</span> <span style="color: #000000;">рекомендую</span> <span style="color: #000000;">на</span> <span style="color: #000000;">Делфи</span><span style="color: #000000;">. </span><span style="color: #000000;">Запускаем</span> <span style="color: #000000;">Делфи</span><span style="color: #000000;">, </span><span style="color: #000000;">создаем</span> <span style="color: #000000;">новый</span> <span style="color: #000000;">проект</span><span style="color: #000000;">, </span><span style="color: #000000;">и</span> <span style="color: #000000;">на</span> <span style="color: #000000;">форму</span> <span style="color: #000000;">кидаем</span><span style="color: #000000;"> StringGrid. </span><span style="color: #000000;">Это</span> <span style="color: #000000;">обязательный</span> <span style="color: #000000;">набор</span><span style="color: #000000;">, </span><span style="color: #000000;">но</span> <span style="color: #000000;">вы</span> <span style="color: #000000;">можете</span> <span style="color: #000000;">добавить</span> <span style="color: #000000;">все</span> <span style="color: #000000;">что</span> <span style="color: #000000;">угодно</span><span style="color: #000000;">, </span><span style="color: #000000;">все</span><span style="color: #000000;">, </span><span style="color: #000000;">что</span> <span style="color: #000000;">вы</span> <span style="color: #000000;">хотели</span> <span style="color: #000000;">бы</span> <span style="color: #000000;">видеть</span><span style="color: #000000;">, </span><span style="color: #000000;">после</span> <span style="color: #000000;">того</span> <span style="color: #000000;">как</span> <span style="color: #000000;">сделаете</span> <span style="color: #000000;">экспорт</span> <span style="color: #000000;">из</span><span style="color: #000000;"> StringGrid'a </span><span style="color: #000000;">в</span> <span style="color: #000000;">исполняемый</span> <span style="color: #000000;">файл</span><span style="color: #000000;">. </span></span><br /><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Ниже</span> <span style="color: #000000;">представлен</span> <span style="color: #000000;">код</span> <span style="color: #000000;">процедуры</span> <span style="color: #000000;">загрузки</span> <span style="color: #000000;">содержимого</span> <span style="color: #000000;">из</span> <span style="color: #000000;">ресурсов</span> <span style="color: #000000;">в</span><span style="color: #000000;"> StringGrid:</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/eksport-stringgrid-v-ispolnyaemyj-fajl-exe.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000; font-weight: bold;">Экспорт</span><span style="color: #000000; font-weight: bold;"> StringGrid </span><span style="color: #000000; font-weight: bold;">в</span> <span style="color: #000000; font-weight: bold;">исполняемый</span> <span style="color: #000000; font-weight: bold;">файл</span><span style="color: #000000; font-weight: bold;"> *.EXE</span></span><br /><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><br /><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Как</span><span style="color: #000000;">-</span><span style="color: #000000;">то</span> <span style="color: #000000;">раз</span> <span style="color: #000000;">мне</span> <span style="color: #000000;">понадобилось</span> <span style="color: #000000;">из</span> <span style="color: #000000;">моей</span> <span style="color: #000000;">программы</span> <span style="color: #000000;">извлекать</span> <span style="color: #000000;">все</span> <span style="color: #000000;">содержимое</span><span style="color: #000000;"> StringGrid'a </span><span style="color: #000000;">в</span><span style="color: #000000;"> exe-</span><span style="color: #000000;">файл</span><span style="color: #000000;">. </span><span style="color: #000000;">В</span> <span style="color: #000000;">данном</span> <span style="color: #000000;">случае</span> <span style="color: #000000;">можно</span> <span style="color: #000000;">конечно</span> <span style="color: #000000;">писать</span> <span style="color: #000000;">свой</span> <span style="color: #000000;">собственный</span> <span style="color: #000000;">компилятор</span><span style="color: #000000;">, </span><span style="color: #000000;">но</span><span style="color: #000000;">, </span><span style="color: #000000;">согласитесь</span><span style="color: #000000;">, </span><span style="color: #000000;">это</span> <span style="color: #000000;">лишнее</span><span style="color: #000000;">. </span><span style="color: #000000;">Гораздо</span> <span style="color: #000000;">проще</span> <span style="color: #000000;">заранее</span> <span style="color: #000000;">написать</span><span style="color: #000000;"> exe-</span><span style="color: #000000;">файл</span> <span style="color: #000000;">и</span> <span style="color: #000000;">поместить</span> <span style="color: #000000;">его</span> <span style="color: #000000;">в</span> <span style="color: #000000;">ресурсы</span> <span style="color: #000000;">нашей</span> <span style="color: #000000;">программы</span><span style="color: #000000;">. </span><span style="color: #000000;">А</span> <span style="color: #000000;">потом</span> <span style="color: #000000;">извлекать</span> <span style="color: #000000;">его</span> <span style="color: #000000;">оттуда</span><span style="color: #000000;">, </span><span style="color: #000000;">и</span> <span style="color: #000000;">записывать</span> <span style="color: #000000;">в</span> <span style="color: #000000;">его</span> <span style="color: #000000;">ресурсы</span> <span style="color: #000000;">содержимое</span><span style="color: #000000;"> StringGrid'a. </span><span style="color: #000000;">Заманчиво</span> <span style="color: #000000;">звучит</span><span style="color: #000000;">, </span><span style="color: #000000;">правда</span><span style="color: #000000;">? </span><span style="color: #000000;">Тогда</span> <span style="color: #000000;">перейдем</span> <span style="color: #000000;">к</span> <span style="color: #000000;">реализации</span><span style="color: #000000;">.</span></span><br /><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><br /><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">1. </span><span style="color: #000000;">Создание</span><span style="color: #000000;"> exe-</span><span style="color: #000000;">файла</span><span style="color: #000000;">, </span><span style="color: #000000;">в</span> <span style="color: #000000;">который</span> <span style="color: #000000;">поместим</span> <span style="color: #000000;">в</span> <span style="color: #000000;">конце</span> <span style="color: #000000;">содержимое</span><span style="color: #000000;"> StringGrid'a.</span></span><br /><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><br /><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Так</span> <span style="color: #000000;">как</span> <span style="color: #000000;">данная</span> <span style="color: #000000;">статья</span> <span style="color: #000000;">посвящена</span> <span style="color: #000000;">языку</span> <span style="color: #000000;">Делфи</span><span style="color: #000000;">, </span><span style="color: #000000;">то</span> <span style="color: #000000;">и</span> <span style="color: #000000;">писать</span> <span style="color: #000000;">этот</span><span style="color: #000000;"> exe-</span><span style="color: #000000;">файл</span> <span style="color: #000000;">я</span> <span style="color: #000000;">рекомендую</span> <span style="color: #000000;">на</span> <span style="color: #000000;">Делфи</span><span style="color: #000000;">. </span><span style="color: #000000;">Запускаем</span> <span style="color: #000000;">Делфи</span><span style="color: #000000;">, </span><span style="color: #000000;">создаем</span> <span style="color: #000000;">новый</span> <span style="color: #000000;">проект</span><span style="color: #000000;">, </span><span style="color: #000000;">и</span> <span style="color: #000000;">на</span> <span style="color: #000000;">форму</span> <span style="color: #000000;">кидаем</span><span style="color: #000000;"> StringGrid. </span><span style="color: #000000;">Это</span> <span style="color: #000000;">обязательный</span> <span style="color: #000000;">набор</span><span style="color: #000000;">, </span><span style="color: #000000;">но</span> <span style="color: #000000;">вы</span> <span style="color: #000000;">можете</span> <span style="color: #000000;">добавить</span> <span style="color: #000000;">все</span> <span style="color: #000000;">что</span> <span style="color: #000000;">угодно</span><span style="color: #000000;">, </span><span style="color: #000000;">все</span><span style="color: #000000;">, </span><span style="color: #000000;">что</span> <span style="color: #000000;">вы</span> <span style="color: #000000;">хотели</span> <span style="color: #000000;">бы</span> <span style="color: #000000;">видеть</span><span style="color: #000000;">, </span><span style="color: #000000;">после</span> <span style="color: #000000;">того</span> <span style="color: #000000;">как</span> <span style="color: #000000;">сделаете</span> <span style="color: #000000;">экспорт</span> <span style="color: #000000;">из</span><span style="color: #000000;"> StringGrid'a </span><span style="color: #000000;">в</span> <span style="color: #000000;">исполняемый</span> <span style="color: #000000;">файл</span><span style="color: #000000;">. </span></span><br /><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Ниже</span> <span style="color: #000000;">представлен</span> <span style="color: #000000;">код</span> <span style="color: #000000;">процедуры</span> <span style="color: #000000;">загрузки</span> <span style="color: #000000;">содержимого</span> <span style="color: #000000;">из</span> <span style="color: #000000;">ресурсов</span> <span style="color: #000000;">в</span><span style="color: #000000;"> StringGrid:</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/eksport-stringgrid-v-ispolnyaemyj-fajl-exe.html">Подробнее...</a></p> Экспорт TStringGrid в Excel 2017-08-11T19:05:43+07:00 2017-08-11T19:05:43+07:00 https://delphi-hlp.ru/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/eksport-tstringgrid-v-excel.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ With OLE Automation }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">uses</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   ComObj;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> RefToCell(ARow, ACol: Integer): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Result := Chr(Ord(</span><span class="f_CodeExample" style="color: #ff0000;">'A'</span><span class="f_CodeExample" style="color: #000000;">) + ACol - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) + IntToStr(ARow);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> SaveAsExcelFile(AGrid: TStringGrid; ASheetName, AFileName: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): Boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   xlWBATWorksheet = -</span><span class="f_CodeExample" style="color: #800000;">4167</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Row, Col: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   GridPrevFile: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   XLApp, Sheet, Data: OLEVariant;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   i, j: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">// Prepare Data </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Data := VarArrayCreate([</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, AGrid.RowCount, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, AGrid.ColCount], varVariant);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> i := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> AGrid.ColCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> j := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> AGrid.RowCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       Data[j + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, i + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">] := AGrid.Cells[i, j];</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">// Create Excel-OLE Object </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Result := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   XLApp := CreateOleObject(</span><span class="f_CodeExample" style="color: #ff0000;">'Excel.Application'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">try</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Hide Excel </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    XLApp.Visible := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Add new Workbook </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    XLApp.Workbooks.Add(xlWBatWorkSheet);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Sheet := XLApp.Workbooks[</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">].WorkSheets[</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">];</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Sheet.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Name</span><span class="f_CodeExample" style="color: #000000;"> := ASheetName;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Fill up the sheet </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    Sheet.Range[RefToCell(</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">), RefToCell(AGrid.RowCount,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       AGrid.ColCount)].Value := Data;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Save Excel Worksheet </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">try</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       XLApp.Workbooks[</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">].SaveAs(AFileName);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       Result := True;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">except</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       </span><span class="f_CodeExample" style="color: #000080;">// Error ? </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">finally</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Quit Excel </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">not</span><span class="f_CodeExample" style="color: #000000;"> VarIsEmpty(XLApp) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       XLApp.DisplayAlerts := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       XLApp.Quit;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       XLAPP := Unassigned;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       Sheet := Unassigned;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// Example: </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> SaveAsExcelFile(stringGrid1, </span><span class="f_CodeExample" style="color: #ff0000;">'My Stringgrid Data'</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #ff0000;">'c:\MyExcelFile.xls'</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ShowMessage(</span><span class="f_CodeExample" style="color: #ff0000;">'StringGrid saved!'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/eksport-tstringgrid-v-excel.html">Подробнее...</a></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ With OLE Automation }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">uses</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   ComObj;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> RefToCell(ARow, ACol: Integer): </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Result := Chr(Ord(</span><span class="f_CodeExample" style="color: #ff0000;">'A'</span><span class="f_CodeExample" style="color: #000000;">) + ACol - </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) + IntToStr(ARow);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> SaveAsExcelFile(AGrid: TStringGrid; ASheetName, AFileName: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">): Boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   xlWBATWorksheet = -</span><span class="f_CodeExample" style="color: #800000;">4167</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   Row, Col: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   GridPrevFile: </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">string</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   XLApp, Sheet, Data: OLEVariant;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   i, j: Integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">// Prepare Data </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Data := VarArrayCreate([</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, AGrid.RowCount, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, AGrid.ColCount], varVariant);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> i := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> AGrid.ColCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">for</span><span class="f_CodeExample" style="color: #000000;"> j := </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">to</span><span class="f_CodeExample" style="color: #000000;"> AGrid.RowCount - </span><span class="f_CodeExample" style="color: #800000;">1</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">do</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       Data[j + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, i + </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">] := AGrid.Cells[i, j];</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #000080;">// Create Excel-OLE Object </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> Result := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   XLApp := CreateOleObject(</span><span class="f_CodeExample" style="color: #ff0000;">'Excel.Application'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">try</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Hide Excel </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    XLApp.Visible := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Add new Workbook </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    XLApp.Workbooks.Add(xlWBatWorkSheet);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Sheet := XLApp.Workbooks[</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">].WorkSheets[</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">];</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     Sheet.</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Name</span><span class="f_CodeExample" style="color: #000000;"> := ASheetName;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Fill up the sheet </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    Sheet.Range[RefToCell(</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">), RefToCell(AGrid.RowCount,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       AGrid.ColCount)].Value := Data;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Save Excel Worksheet </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">try</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       XLApp.Workbooks[</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">].SaveAs(AFileName);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       Result := True;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">except</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       </span><span class="f_CodeExample" style="color: #000080;">// Error ? </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">finally</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #000080;">// Quit Excel </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">not</span><span class="f_CodeExample" style="color: #000000;"> VarIsEmpty(XLApp) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       XLApp.DisplayAlerts := False;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       XLApp.Quit;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       XLAPP := Unassigned;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">       Sheet := Unassigned;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">// Example: </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">   </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> SaveAsExcelFile(stringGrid1, </span><span class="f_CodeExample" style="color: #ff0000;">'My Stringgrid Data'</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #ff0000;">'c:\MyExcelFile.xls'</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">     ShowMessage(</span><span class="f_CodeExample" style="color: #ff0000;">'StringGrid saved!'</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> </span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/stringgrid/sokhranenie-i-zagruzka-import-i-eksport/eksport-tstringgrid-v-excel.html">Подробнее...</a></p>