{"id":43,"date":"2011-04-14T08:50:45","date_gmt":"2011-04-14T08:50:45","guid":{"rendered":"https:\/\/blog.alwawee.ru\/?p=43"},"modified":"2011-04-25T04:45:48","modified_gmt":"2011-04-25T04:45:48","slug":"%d0%b7%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%ba%d0%b0-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-%d1%81-%d1%81%d0%b0%d0%b9%d1%82%d0%b0-%d0%b2-%d1%81%d0%be%d0%b1%d1%81%d1%82%d0%b2%d0%b5%d0%bd%d0%bd%d1%83%d1%8e","status":"publish","type":"post","link":"https:\/\/blog.alwawee.ru\/?p=43","title":{"rendered":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443"},"content":{"rendered":"<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u0432\u043e\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u043c, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041d\u043e \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u043e\u043f\u0438-\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u0432 Excel \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u0422\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434. \u041e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 C# \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 HTML \u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Excel \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u043b\u0430\u0434\u0435\u0442\u044c \u044f\u0437\u044b\u043a\u043e\u043c C#, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430\u0434\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u0442\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0430\u0439\u0442. <\/p>\n<p><strong>1. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0440\u0435\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/strong> \u043d\u0430 C#(\u042f \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c MS Visual Studio 2010 Ultimate). \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439:<\/p>\n<p><a href=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-83\" title=\"ExtractorExample\" src=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg\" alt=\"\" width=\"614\" height=\"172\" srcset=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg 614w, https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample-300x84.jpg 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/a><\/p>\n<p>\u0412 \u0430\u0434\u0440\u0435\u0441\u0435 URL \u043c\u044b \u0432\u0432\u0435\u0434\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f Excel 2007 \u0438 \u0432 \u043d\u0435\u0433\u043e \u0437\u0430\u043d\u0435\u0441\u0443\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 &#8211; \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u0442\u0435\u043d\u0442.<\/p>\n<p><strong>2. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043f\u043e References<\/strong> \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 Solution Explorer. \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c Add Reference. \u0414\u0430\u043b\u0435\u0435 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 COM \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 Microsoft Excel 12.0 Object Library. \u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u044d\u0442\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Excel.<\/p>\n<p><strong>3. \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0435\u043d:<\/strong><br \/>\n<code><br \/>\nusing System;<br \/>\nusing System.Collections.Generic;<br \/>\nusing System.ComponentModel;<br \/>\nusing System.Data;<br \/>\nusing System.Drawing;<br \/>\nusing System.Linq;<br \/>\nusing System.Text;<br \/>\nusing System.Windows.Forms;<br \/>\nusing System.Linq;<br \/>\nusing System.Web;<br \/>\nusing System.IO;<br \/>\nusing System.Net;<br \/>\nusing System.Collections;<br \/>\nusing System.Collections.Specialized;<br \/>\nusing System.Configuration;<br \/>\nusing Excel = Microsoft.Office.Interop.Excel;<br \/>\nusing System.Reflection;<br \/>\n<\/code><\/p>\n<p><strong>4. \u041f\u0438\u0448\u0435\u043c \u043a\u043e\u0434 \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043a\u0438.<\/strong><br \/>\n<code><br \/>\nprivate void button1_Click(object sender, EventArgs e)<br \/>\n{<br \/>\nstring OldText, NewText, PossibleRefText, RefText, textOfCitation, authorOfCitation;<br \/>\nstrURL = textBox1.Text;<br \/>\nOldText = GetHtmlFromUrl(strURL);<br \/>\nint begin, begin0, i;<br \/>\nint end;<br \/>\nint length;<br \/>\nint lastindex;<br \/>\nint newindex;<br \/>\nint indexOfClosingTag, difference, indexOfHref;<br \/>\nint indexofrefbegin, indexofspanbegin, indexOfAuthorEnd, indexOfAuthorBegin, indexOfAuthorBegin0;<br \/>\nRefText = \"&lt;a href\";<br \/>\nnewindex = OldText.IndexOf(\"&lt;p class=\\\"data\\\"&gt;\");<br \/>\nbegin = OldText.IndexOf(\"&lt;p class=\\\"data\\\"&gt;\");<br \/>\nlastindex = OldText.LastIndexOf(\"&lt;p class=\\\"data\\\"&gt;\");<br \/>\nOldText = OldText.Remove(0, newindex);<br \/>\ni = 0;<br \/>\nwhile (!(newindex == (-1)))<br \/>\n{<br \/>\ni = i + 1;<br \/>\nbegin0 = OldText.IndexOf(\"&lt;p class=\\\"data\\\"&gt;\");<br \/>\nbegin = OldText.IndexOf(\"&lt;p class=\\\"data\\\"&gt;\") + 16;<br \/>\nindexofrefbegin = begin;<br \/>\nend = OldText.IndexOf(\"&lt;\/p&gt;\");<br \/>\nlength = end - begin;<br \/>\nif (length &lt; 0)<br \/>\n{<br \/>\nbreak;<br \/>\n}<br \/>\ntextOfCitation = OldText.Substring(begin, length);<br \/>\nOldText = OldText.Remove(0, end + 4);<\/p>\n<p>indexOfAuthorBegin0 = OldText.IndexOf(\"class=\\\"author\\\"\");<br \/>\nOldText = OldText.Remove(0, indexOfAuthorBegin0);<br \/>\nindexOfAuthorBegin0 = OldText.IndexOf(\"class=\\\"author\\\"\");<br \/>\nindexOfHref = OldText.IndexOf(\"href=\");<br \/>\ndifference = indexOfHref - (indexOfAuthorBegin0 + 15);<br \/>\nif (difference &lt; 5 &amp;&amp; difference &gt;= 0)<br \/>\n{<br \/>\nindexOfClosingTag = OldText.IndexOf(\"&gt;\");<br \/>\nlength = indexOfClosingTag - indexOfAuthorBegin0 - 14;<br \/>\nOldText = OldText.Remove(indexOfAuthorBegin0 + 15, length);<br \/>\n}<br \/>\nindexOfAuthorBegin = OldText.IndexOf(\"class=\\\"author\\\"\") + 15;<\/p>\n<p>indexOfAuthorEnd = OldText.IndexOf(\"&lt;\");<br \/>\nlength = indexOfAuthorEnd - indexOfAuthorBegin;<br \/>\nif (length &lt; 0)<br \/>\n{<br \/>\nbreak;<br \/>\n}<\/p>\n<p>authorOfCitation = OldText.Substring(indexOfAuthorBegin, length);<br \/>\nOldText = OldText.Remove(0, indexOfAuthorEnd + 1);<\/p>\n<p>\/\/Literal1.Text = Literal1.Text + \" \" + i.ToString() + \". \" + textOfCitation + \" \" + \"(\" + authorOfCitation + \")\" + \"&lt;\/br&gt;\";<br \/>\ntextOfCitation = cleanFromBr(textOfCitation);<br \/>\ntextOfCitation = cleanFromQuot(textOfCitation);<br \/>\ncitations[i - 1, 0] = textOfCitation;<br \/>\ncitations[i - 1, 1] = authorOfCitation;<\/p>\n<p>}<\/p>\n<p>\/\/\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0446\u0438\u0442\u0430\u0442 \u0432 Excel<br \/>\nInsertToExcel();<\/p>\n<p>\/\/\u00a0 \u0434\u0432\u0438\u0436\u043e\u043a \u0434\u043b\u044f \u0432\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438<br \/>\n\/\/{<br \/>\n\/\/\u00a0\u00a0\u00a0 string OldText, NewText, PossibleRefText, RefText;<br \/>\n\/\/\u00a0\u00a0\u00a0 strURL = TextBox1.Text;<br \/>\n\/\/\u00a0\u00a0\u00a0 OldText = GetHtmlFromUrl(strURL);<br \/>\n\/\/\u00a0\u00a0\u00a0 int begin;<br \/>\n\/\/\u00a0\u00a0\u00a0 int end;<br \/>\n\/\/\u00a0\u00a0\u00a0 int length;<br \/>\n\/\/\u00a0\u00a0\u00a0 int lastindex;<br \/>\n\/\/\u00a0\u00a0\u00a0 int newindex;<br \/>\n\/\/\u00a0\u00a0\u00a0 int indexofrefbegin, indexofspanbegin;<br \/>\n\/\/\u00a0\u00a0\u00a0 RefText = \"&lt;p class=\\\"data\\\"&gt;\";<br \/>\n\/\/\u00a0\u00a0\u00a0 newindex = OldText.IndexOf(RefText);<br \/>\n\/\/\u00a0\u00a0\u00a0 begin = OldText.IndexOf(RefText);<br \/>\n\/\/\u00a0\u00a0\u00a0 lastindex = OldText.LastIndexOf(\"&lt;\/p&gt;\");<br \/>\n\/\/\u00a0\u00a0\u00a0 while (!(newindex == (-1)))<br \/>\n\/\/\u00a0\u00a0\u00a0 {<br \/>\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 begin = OldText.IndexOf(RefText) + 16;<br \/>\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 end = OldText.IndexOf(\"&lt;\/p&gt;\");<br \/>\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 length = end - begin;<br \/>\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NewText = OldText.Substring(begin, length);<br \/>\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 newindex = OldText.IndexOf(RefText);<br \/>\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Literal1.Text = Literal1.Text + NewText;<br \/>\n\/\/\u00a0\u00a0\u00a0 }<br \/>\n\/\/}<\/p>\n<p>}<br \/>\n<\/code><\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c HTML \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 GetHtmlFromUrl. \u0417\u0430\u0442\u0435\u043c \u043c\u044b \u044d\u0442\u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c, \u0443\u0434\u0430\u043b\u044f\u044f \u0432\u0441\u0435 \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u0435, \u0430 \u043d\u0443\u0436\u043d\u043e\u0435 \u0437\u0430\u043d\u043e\u0441\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432. \u0417\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0432 Excel \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 InsertToExcel().<\/p>\n<p><strong>5. \u041f\u0438\u0448\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0432 \u043a\u043e\u0434\u0435 \u0434\u043b\u044f \u043a\u043d\u043e\u043f\u043a\u0438:<\/strong><\/p>\n<p><code><br \/>\nprivate string cleanFromBr(string text)<br \/>\n{<br \/>\nint indexOfStart, indexOfEnd;<br \/>\nindexOfStart = text.IndexOf(\"&lt;br\/&gt;\") - 1;<br \/>\nwhile (indexOfStart != -2)<br \/>\n{<br \/>\nindexOfEnd = indexOfStart + 6;<br \/>\ntext = text.Remove(indexOfStart, 6);<br \/>\ntext = text.Insert(indexOfStart, \" \");<br \/>\nindexOfStart = text.IndexOf(\"&lt;br\/&gt;\") - 1;<br \/>\n}<br \/>\nreturn text;<br \/>\n}<\/p>\n<p>private string cleanFromQuot(string text)<br \/>\n{<br \/>\nint indexOfStart, indexOfEnd;<br \/>\nindexOfStart = text.IndexOf(\"&amp;quot;\");<br \/>\nwhile (indexOfStart != -1)<br \/>\n{<br \/>\nindexOfEnd = indexOfStart + 6;<br \/>\ntext = text.Remove(indexOfStart, 6);<br \/>\ntext = text.Insert(indexOfStart, \"\\\"\");<br \/>\nindexOfStart = text.IndexOf(\"&amp;quot;\");<br \/>\n}<br \/>\nreturn text;<br \/>\n}<\/p>\n<p>private void InsertToExcel()<br \/>\n{<br \/>\nExcel.Application oXL;<br \/>\nExcel._Workbook oWB;<br \/>\nExcel._Worksheet oSheet;<br \/>\nExcel.Range oRng;<\/p>\n<p>try<br \/>\n{<br \/>\n\/\/Start Excel and get Application object.<br \/>\noXL = new Excel.Application();<br \/>\noXL.Visible = true;<\/p>\n<p>\/\/Get a new workbook.<br \/>\noWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));<br \/>\noSheet = (Excel._Worksheet)oWB.ActiveSheet;<\/p>\n<p>\/\/Add table headers going cell by cell.<br \/>\n\/\/oSheet.Cells[1, 1] = \"First Name\";<br \/>\n\/\/oSheet.Cells[1, 2] = \"Last Name\";<br \/>\n\/\/oSheet.Cells[1, 3] = \"Full Name\";<br \/>\n\/\/oSheet.Cells[1, 4] = \"Salary\";<\/p>\n<p>\/\/Format A1:D1 as bold, vertical alignment = center.<br \/>\n\/\/oSheet.get_Range(\"A1\", \"D1\").Font.Bold = true;<br \/>\n\/\/oSheet.get_Range(\"A1\", \"D1\").VerticalAlignment =<br \/>\n\/\/\u00a0\u00a0\u00a0 Excel.XlVAlign.xlVAlignCenter;<\/p>\n<p>\/\/Fill A1:B20 with an array of values (First and Last Names).<br \/>\noSheet.get_Range(\"B1\", \"C20\").Value2 = citations;<\/p>\n<p>\/\/\/\/Fill C2:C6 with a relative formula (=A2 &amp; \" \" &amp; B2).<br \/>\n\/\/oRng = oSheet.get_Range(\"C2\", \"C6\");<br \/>\n\/\/oRng.Formula = \"=A2 &amp; \\\" \\\" &amp; B2\";<\/p>\n<p>\/\/\/\/Fill D2:D6 with a formula(=RAND()*100000) and apply format.<br \/>\n\/\/oRng = oSheet.get_Range(\"D2\", \"D6\");<br \/>\n\/\/oRng.Formula = \"=RAND()*100000\";<br \/>\n\/\/oRng.NumberFormat = \"$0.00\";<\/p>\n<p>\/\/\/\/AutoFit columns A:D.<br \/>\n\/\/oRng = oSheet.get_Range(\"A1\", \"D1\");<br \/>\n\/\/oRng.EntireColumn.AutoFit();<\/p>\n<p>\/\/Manipulate a variable number of columns for Quarterly Sales Data.<br \/>\n\/\/DisplayQuarterlySales(oSheet);<\/p>\n<p>\/\/Make sure Excel is visible and give the user control<br \/>\n\/\/of Microsoft Excel's lifetime.<br \/>\noXL.Visible = true;<br \/>\noXL.UserControl = true;<br \/>\n}<br \/>\ncatch (Exception theException)<br \/>\n{<br \/>\nString errorMessage;<br \/>\nerrorMessage = \"Error: \";<br \/>\nerrorMessage = String.Concat(errorMessage, theException.Message);<br \/>\nerrorMessage = String.Concat(errorMessage, \" Line: \");<br \/>\nerrorMessage = String.Concat(errorMessage, theException.Source);<\/p>\n<p>\/\/MessageBox.Show(errorMessage, \"Error\");<br \/>\n}<br \/>\n}<\/p>\n<p>public enum ResponseCategories<br \/>\n{<br \/>\nUnknown = 0,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Unknown code ( &lt; 100 or &gt; 599)<br \/>\nInformational = 1, \/\/ Informational codes (100 &gt;= 199)<br \/>\nSuccess = 2,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Success codes (200 &gt;= 299)<br \/>\nRedirected = 3,\u00a0\u00a0\u00a0 \/\/ Redirection code (300 &gt;= 399)<br \/>\nClientError = 4,\u00a0\u00a0 \/\/ Client error code (400 &gt;= 499)<br \/>\nServerError = 5\u00a0\u00a0\u00a0 \/\/ Server error code (500 &gt;= 599)<br \/>\n}<\/p>\n<p>public static string GetHtmlFromUrl(string url)<br \/>\n{<br \/>\nif (string.IsNullOrEmpty(url))<br \/>\nthrow new ArgumentNullException(\"url\", \"Parameter is null or empty\");<\/p>\n<p>string html = \"\";<br \/>\nHttpWebRequest request = GenerateHttpWebRequest(url);<br \/>\nusing (HttpWebResponse response = (HttpWebResponse)request.GetResponse())<br \/>\n{<br \/>\nif (VerifyResponse(response) == ResponseCategories.Success)<br \/>\n{<br \/>\n\/\/ Get the response stream.<br \/>\nStream responseStream = response.GetResponseStream();<br \/>\n\/\/ Use a stream reader that understands UTF8.<br \/>\nusing (StreamReader reader =<br \/>\nnew StreamReader(responseStream, Encoding.UTF8))<br \/>\n{<br \/>\nhtml = reader.ReadToEnd();<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\nreturn html;<br \/>\n}<\/p>\n<p>public static HttpWebRequest GenerateHttpWebRequest(string UriString)<br \/>\n{<br \/>\n\/\/ Get a Uri object.<br \/>\nUri Uri = new Uri(UriString);<br \/>\n\/\/ Create the initial request.<br \/>\nHttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(Uri);<br \/>\n\/\/ Return the request.<br \/>\nreturn httpRequest;<br \/>\n}<\/p>\n<p>\/\/ POST overload<br \/>\npublic static HttpWebRequest GenerateHttpWebRequest(string UriString,<br \/>\nstring postData,<br \/>\nstring contentType)<br \/>\n{<br \/>\n\/\/ Get a Uri object.<br \/>\nUri Uri = new Uri(UriString);<br \/>\n\/\/ Create the initial request.<br \/>\nHttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(Uri);<\/p>\n<p>\/\/ Get the bytes for the request; should be pre-escaped.<br \/>\nbyte[] bytes = Encoding.UTF8.GetBytes(postData);<\/p>\n<p>\/\/ Set the content type of the data being posted.<br \/>\nhttpRequest.ContentType = contentType;<br \/>\n\/\/\"application\/x-www-form-urlencoded\"; for forms<\/p>\n<p>\/\/ Set the content length of the string being posted.<br \/>\nhttpRequest.ContentLength = postData.Length;<\/p>\n<p>\/\/ Get the request stream and write the post data in.<br \/>\nusing (Stream requestStream = httpRequest.GetRequestStream())<br \/>\n{<br \/>\nrequestStream.Write(bytes, 0, bytes.Length);<br \/>\n}<br \/>\n\/\/ Return the request.<br \/>\nreturn httpRequest;<br \/>\n}<\/p>\n<p>public static ResponseCategories VerifyResponse(HttpWebResponse httpResponse)<br \/>\n{<br \/>\n\/\/ Just in case there are more success codes defined in the future<br \/>\n\/\/ by HttpStatusCode, we will check here for the \"success\" ranges<br \/>\n\/\/ instead of using the HttpStatusCode enum as it overloads some<br \/>\n\/\/ values.<br \/>\nint statusCode = (int)httpResponse.StatusCode;<br \/>\nif ((statusCode &gt;= 100) &amp;&amp; (statusCode &lt;= 199))<br \/>\n{<br \/>\nreturn ResponseCategories.Informational;<br \/>\n}<br \/>\nelse if ((statusCode &gt;= 200) &amp;&amp; (statusCode &lt;= 299))<br \/>\n{<br \/>\nreturn ResponseCategories.Success;<br \/>\n}<br \/>\nelse if ((statusCode &gt;= 300) &amp;&amp; (statusCode &lt;= 399))<br \/>\n{<br \/>\nreturn ResponseCategories.Redirected;<br \/>\n}<br \/>\nelse if ((statusCode &gt;= 400) &amp;&amp; (statusCode &lt;= 499))<br \/>\n{<br \/>\nreturn ResponseCategories.ClientError;<br \/>\n}<br \/>\nelse if ((statusCode &gt;= 500) &amp;&amp; (statusCode &lt;= 599))<br \/>\n{<br \/>\nreturn ResponseCategories.ServerError;<br \/>\n}<br \/>\nreturn ResponseCategories.Unknown;<br \/>\n}<br \/>\n<\/code><\/p>\n<p>\u0427\u0430\u0441\u0442\u044c \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043d\u0443\u0436\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c HTML, \u0447\u0430\u0441\u0442\u044c \u0447\u0442\u043e\u0431\u044b \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u043e\u0442 \u0442\u044d\u0433\u043e\u0432. \u041d\u0430\u0431\u043e\u0440 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u0430\u043a \u0438 \u043a\u043e\u0434 \u043a\u043d\u043e\u043f\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0441 \u043a\u0430\u043a\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0430\u0439\u0442\u0430 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043d\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u0435\u043d, \u0435\u0433\u043e \u043d\u0430\u0434\u043e \u0437\u0430\u0442\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0430\u0439\u0442. \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u043a\u043e\u0434, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u0432 C#, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<\/p>\n<p>4. \u0417\u0434\u0435\u0441\u044c <a href=\"http:\/\/support.microsoft.com\/kb\/302084\">http:\/\/support.microsoft.com\/kb\/302084<\/a> \u043e\u043f\u0438\u0441\u0430\u043d\u043e, \u043a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Excel.<\/p>\n<p>5. \u0414\u0430\u043b\u0435\u0435, \u043a\u0430\u043a \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 Excel \u0432 XML, \u0430 XML \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0443\u0434\u0430, \u043a\u0443\u0434\u0430 \u0432\u0430\u043c \u043d\u0430\u0434\u043e. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043f\u043e\u0441\u0442 \u0432 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u0433\u0435.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u0432\u043e\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u043c, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041d\u043e \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u043e\u043f\u0438-\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u0432 Excel \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u0422\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434. \u041e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 C# \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 HTML \u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Excel \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e. \u0414\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u043c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"class_list":["post-43","post","type-post","status-publish","format-standard","hentry","category-android"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443 - Denis Kutlubaev<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.alwawee.ru\/?p=43\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443 - Denis Kutlubaev\" \/>\n<meta property=\"og:description\" content=\"\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u0432\u043e\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u043c, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041d\u043e \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u043e\u043f\u0438-\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u0432 Excel \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u0422\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434. \u041e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 C# \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 HTML \u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Excel \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e. \u0414\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u043c [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.alwawee.ru\/?p=43\" \/>\n<meta property=\"og:site_name\" content=\"Denis Kutlubaev\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/alwaweemobile\" \/>\n<meta property=\"article:published_time\" content=\"2011-04-14T08:50:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-04-25T04:45:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"614\" \/>\n\t<meta property=\"og:image:height\" content=\"172\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Denis Kutlubaev\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Denis Kutlubaev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43\"},\"author\":{\"name\":\"Denis Kutlubaev\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\"},\"headline\":\"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443\",\"datePublished\":\"2011-04-14T08:50:45+00:00\",\"dateModified\":\"2011-04-25T04:45:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43\"},\"wordCount\":329,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.alwawee.ru\\\/wp-content\\\/uploads\\\/2011\\\/04\\\/ExtractorExample.jpg\",\"articleSection\":[\"Android\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43\",\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43\",\"name\":\"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443 - Denis Kutlubaev\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.alwawee.ru\\\/wp-content\\\/uploads\\\/2011\\\/04\\\/ExtractorExample.jpg\",\"datePublished\":\"2011-04-14T08:50:45+00:00\",\"dateModified\":\"2011-04-25T04:45:48+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43#primaryimage\",\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/wp-content\\\/uploads\\\/2011\\\/04\\\/ExtractorExample.jpg\",\"contentUrl\":\"https:\\\/\\\/blog.alwawee.ru\\\/wp-content\\\/uploads\\\/2011\\\/04\\\/ExtractorExample.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/?p=43#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.alwawee.ru\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#website\",\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/\",\"name\":\"Denis Kutlubaev\",\"description\":\"iOS Development\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.alwawee.ru\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.alwawee.ru\\\/#\\\/schema\\\/person\\\/58f1f1f57155b48afab83ba53b3e26a7\",\"name\":\"Denis Kutlubaev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg\",\"caption\":\"Denis Kutlubaev\"},\"description\":\"iOS Developer, creator of Tornado Browser and many other popular apps\",\"sameAs\":[\"http:\\\/\\\/dennis.alwawee.com\"],\"url\":\"https:\\\/\\\/blog.alwawee.ru\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443 - Denis Kutlubaev","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.alwawee.ru\/?p=43","og_locale":"en_US","og_type":"article","og_title":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443 - Denis Kutlubaev","og_description":"\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u0432\u043e\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u043c, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041d\u043e \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u043e\u043f\u0438-\u043f\u0430\u0441\u0442\u0438\u0442\u044c \u0432 Excel \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u0422\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434. \u041e\u043d \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 C# \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 HTML \u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Excel \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e. \u0414\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u043c [&hellip;]","og_url":"https:\/\/blog.alwawee.ru\/?p=43","og_site_name":"Denis Kutlubaev","article_publisher":"https:\/\/www.facebook.com\/alwaweemobile","article_published_time":"2011-04-14T08:50:45+00:00","article_modified_time":"2011-04-25T04:45:48+00:00","og_image":[{"width":614,"height":172,"url":"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg","type":"image\/jpeg"}],"author":"Denis Kutlubaev","twitter_misc":{"Written by":"Denis Kutlubaev","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.alwawee.ru\/?p=43#article","isPartOf":{"@id":"https:\/\/blog.alwawee.ru\/?p=43"},"author":{"name":"Denis Kutlubaev","@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7"},"headline":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443","datePublished":"2011-04-14T08:50:45+00:00","dateModified":"2011-04-25T04:45:48+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.alwawee.ru\/?p=43"},"wordCount":329,"commentCount":0,"image":{"@id":"https:\/\/blog.alwawee.ru\/?p=43#primaryimage"},"thumbnailUrl":"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg","articleSection":["Android"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.alwawee.ru\/?p=43#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.alwawee.ru\/?p=43","url":"https:\/\/blog.alwawee.ru\/?p=43","name":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443 - Denis Kutlubaev","isPartOf":{"@id":"https:\/\/blog.alwawee.ru\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.alwawee.ru\/?p=43#primaryimage"},"image":{"@id":"https:\/\/blog.alwawee.ru\/?p=43#primaryimage"},"thumbnailUrl":"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg","datePublished":"2011-04-14T08:50:45+00:00","dateModified":"2011-04-25T04:45:48+00:00","author":{"@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7"},"breadcrumb":{"@id":"https:\/\/blog.alwawee.ru\/?p=43#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.alwawee.ru\/?p=43"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.alwawee.ru\/?p=43#primaryimage","url":"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg","contentUrl":"https:\/\/blog.alwawee.ru\/wp-content\/uploads\/2011\/04\/ExtractorExample.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.alwawee.ru\/?p=43#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.alwawee.ru\/"},{"@type":"ListItem","position":2,"name":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443"}]},{"@type":"WebSite","@id":"https:\/\/blog.alwawee.ru\/#website","url":"https:\/\/blog.alwawee.ru\/","name":"Denis Kutlubaev","description":"iOS Development","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.alwawee.ru\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.alwawee.ru\/#\/schema\/person\/58f1f1f57155b48afab83ba53b3e26a7","name":"Denis Kutlubaev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/346de75d27c818be0aa7fddeada2e50e30cc15b4da6b3b8110c5d766cd2afa34?s=96&d=mm&r=pg","caption":"Denis Kutlubaev"},"description":"iOS Developer, creator of Tornado Browser and many other popular apps","sameAs":["http:\/\/dennis.alwawee.com"],"url":"https:\/\/blog.alwawee.ru\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts\/43","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=43"}],"version-history":[{"count":0,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=\/wp\/v2\/posts\/43\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alwawee.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}