{"id":655,"date":"2009-09-30T16:42:00","date_gmt":"2009-09-30T08:42:00","guid":{"rendered":""},"modified":"2013-11-17T17:02:03","modified_gmt":"2013-11-17T09:02:03","slug":"delphi%e6%93%8d%e4%bd%9cexcel%e7%9a%84%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/655.html","title":{"rendered":"Delphi\u64cd\u4f5cExcel\u7684\u65b9\u6cd5"},"content":{"rendered":"<p>(\u4e00) \u4f7f\u7528\u52a8\u6001\u521b\u5efa\u7684\u65b9\u6cd5<br \/>\n\u9996\u5148\u521b\u5efa Excel \u5bf9\u8c61\uff0c\u4f7f\u7528ComObj:<br \/>\nvar ExcelApp: Variant;<br \/>\nExcelApp := CreateOleObject( &#8216;Excel.Application&#8217; );<br \/>\n1) \u663e\u793a\u5f53\u524d\u7a97\u53e3\uff1a<br \/>\nExcelApp.Visible := True;<\/p>\n<p>2) \u66f4\u6539 Excel \u6807\u9898\u680f\uff1a<br \/>\nExcelApp.Caption := &#8216;\u5e94\u7528\u7a0b\u5e8f\u8c03\u7528 Microsoft Excel&#8217;;<\/p>\n<p>3) \u6dfb\u52a0\u65b0\u5de5\u4f5c\u7c3f\uff1a<br \/>\nExcelApp.WorkBooks.Add;<\/p>\n<p>4) \u6253\u5f00\u5df2\u5b58\u5728\u7684\u5de5\u4f5c\u7c3f\uff1a<br \/>\nExcelApp.WorkBooks.Open( &#8216;C:\\Excel\\Demo.xls&#8217; );<\/p>\n<p>5) \u8bbe\u7f6e\u7b2c2\u4e2a\u5de5\u4f5c\u8868\u4e3a\u6d3b\u52a8\u5de5\u4f5c\u8868\uff1a<br \/>\nExcelApp.WorkSheets[2].Activate;\u00a0\u00a0 \u6216 ExcelApp.WorksSheets[ &#8216;Sheet2&#8217; ].Activate;<\/p>\n<p>6) \u7ed9\u5355\u5143\u683c\u8d4b\u503c\uff1a<br \/>\nExcelApp.Cells[1,4].Value := &#8216;\u7b2c\u4e00\u884c\u7b2c\u56db\u5217&#8217;;<\/p>\n<p>7) \u8bbe\u7f6e\u6307\u5b9a\u5217\u7684\u5bbd\u5ea6\uff08\u5355\u4f4d\uff1a\u5b57\u7b26\u4e2a\u6570\uff09\uff0c\u4ee5\u7b2c\u4e00\u5217\u4e3a\u4f8b\uff1a<br \/>\nExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;<\/p>\n<p>8) \u8bbe\u7f6e\u6307\u5b9a\u884c\u7684\u9ad8\u5ea6\uff08\u5355\u4f4d\uff1a\u78c5\uff09\uff081\u78c5\uff1d0.035\u5398\u7c73\uff09\uff0c\u4ee5\u7b2c\u4e8c\u884c\u4e3a\u4f8b\uff1a<br \/>\nExcelApp.ActiveSheet.Rows[2].RowHeight := 1\/0.035; \/\/ 1\u5398\u7c73<\/p>\n<p>9) \u5728\u7b2c8\u884c\u4e4b\u524d\u63d2\u5165\u5206\u9875\u7b26\uff1a<br \/>\nExcelApp.WorkSheets[1].Rows.PageBreak := 1;<\/p>\n<p>10) \u5728\u7b2c8\u5217\u4e4b\u524d\u5220\u9664\u5206\u9875\u7b26\uff1aExcelApp.ActiveSheet.Columns[4].PageBreak := 0;<\/p>\n<p>11) \u6307\u5b9a\u8fb9\u6846\u7ebf\u5bbd\u5ea6\uff1a<br \/>\nExcelApp.ActiveSheet.Range[ &#8216;B3:D4&#8217; ].Borders[2].Weight := 3;<br \/>\n1-\u5de6\u00a0\u00a0\u00a0\u00a0 2-\u53f3\u00a0\u00a0\u00a0 3-\u9876\u00a0\u00a0\u00a0\u00a0 4-\u5e95\u00a0\u00a0\u00a0 5-\u659c( \\ )\u00a0\u00a0\u00a0\u00a0\u00a0 6-\u659c( \/ )<\/p>\n<p>12) \u6e05\u9664\u7b2c\u4e00\u884c\u7b2c\u56db\u5217\u5355\u5143\u683c\u516c\u5f0f\uff1a<br \/>\nExcelApp.ActiveSheet.Cells[1,4].ClearContents;<\/p>\n<p>13) \u8bbe\u7f6e\u7b2c\u4e00\u884c\u5b57\u4f53\u5c5e\u6027\uff1aExcelApp.ActiveSheet.Rows[1].Font.Name := &#8216;\u96b6\u4e66&#8217;;<br \/>\nExcelApp.ActiveSheet.Rows[1].Font.Color\u00a0\u00a0 := clBlue;<br \/>\nExcelApp.ActiveSheet.Rows[1].Font.Bold\u00a0\u00a0\u00a0 := True;<br \/>\nExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;<\/p>\n<p>14) \u8fdb\u884c\u9875\u9762\u8bbe\u7f6e\uff1a<br \/>\na.\u9875\u7709\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.CenterHeader := &#8216;\u62a5\u8868\u6f14\u793a&#8217;;<br \/>\nb.\u9875\u811a\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.CenterFooter := &#8216;\u7b2c&amp;P\u9875&#8217;;<br \/>\nc.\u9875\u7709\u5230\u9876\u7aef\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2\/0.035;<br \/>\nd.\u9875\u811a\u5230\u5e95\u7aef\u8fb9\u8ddd3cm\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3\/0.035;<br \/>\ne.\u9876\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.TopMargin := 2\/0.035;<br \/>\nf.\u5e95\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.BottomMargin := 2\/0.035;<br \/>\ng.\u5de6\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.LeftMargin := 2\/0.035;<br \/>\nh.\u53f3\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.RightMargin := 2\/0.035;<br \/>\ni.\u9875\u9762\u6c34\u5e73\u5c45\u4e2d\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2\/0.035;<br \/>\nj.\u9875\u9762\u5782\u76f4\u5c45\u4e2d\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.CenterVertically := 2\/0.035;<br \/>\nk.\u6253\u5370\u5355\u5143\u683c\u7f51\u7ebf\uff1a<br \/>\nExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;<\/p>\n<p>15) \u62f7\u8d1d\u64cd\u4f5c\uff1a<br \/>\na.\u62f7\u8d1d\u6574\u4e2a\u5de5\u4f5c\u8868\uff1a\u00a0\u00a0\u00a0 ExcelApp.ActiveSheet.Used.Range.Copy;<br \/>\nb.\u62f7\u8d1d\u6307\u5b9a\u533a\u57df\uff1a\u00a0\u00a0\u00a0 ExcelApp.ActiveSheet.Range[ &#8216;A1:E2&#8217; ].Copy;<br \/>\nc.\u4eceA1\u4f4d\u7f6e\u5f00\u59cb\u7c98\u8d34\uff1a\u00a0\u00a0\u00a0 ExcelApp.ActiveSheet.Range.[ &#8216;A1&#8217; ].PasteSpecial;<br \/>\nd.\u4ece\u6587\u4ef6\u5c3e\u90e8\u5f00\u59cb\u7c98\u8d34\uff1a\u00a0\u00a0\u00a0 ExcelApp.ActiveSheet.Range.PasteSpecial;<\/p>\n<p>16) \u63d2\u5165\u4e00\u884c\u6216\u4e00\u5217\uff1a<br \/>\na. ExcelApp.ActiveSheet.Rows[2].Insert;<br \/>\nb. ExcelApp.ActiveSheet.Columns[1].Insert;<\/p>\n<p>17) \u5220\u9664\u4e00\u884c\u6216\u4e00\u5217\uff1a<br \/>\na. ExcelApp.ActiveSheet.Rows[2].Delete;<br \/>\nb. ExcelApp.ActiveSheet.Columns[1].Delete;<\/p>\n<p>18) \u6253\u5370\u9884\u89c8\u5de5\u4f5c\u8868\uff1a<br \/>\nExcelApp.ActiveSheet.PrintPreview;<\/p>\n<p>19) \u6253\u5370\u8f93\u51fa\u5de5\u4f5c\u8868\uff1a<br \/>\nExcelApp.ActiveSheet.PrintOut;<\/p>\n<p>20) \u5de5\u4f5c\u8868\u4fdd\u5b58\uff1a<br \/>\nif not ExcelApp.ActiveWorkBook.Saved then<br \/>\nExcelApp.ActiveSheet.PrintPreview;<\/p>\n<p>21) \u5de5\u4f5c\u8868\u53e6\u5b58\u4e3a\uff1a<br \/>\nExcelApp.SaveAs( &#8216;C:\\Excel\\Demo1.xls&#8217; );<\/p>\n<p>22) \u653e\u5f03\u5b58\u76d8\uff1a<br \/>\nExcelApp.ActiveWorkBook.Saved := True;<\/p>\n<p>23) \u5173\u95ed\u5de5\u4f5c\u7c3f\uff1a<br \/>\nExcelApp.WorkBooks.Close;<\/p>\n<p>24) \u9000\u51fa Excel\uff1a<br \/>\nExcelApp.Quit;<\/p>\n<p>(\u4e8c) \u4f7f\u7528Delphi \u63a7\u4ef6\u65b9\u6cd5<\/p>\n<p>\u5728Form\u4e2d\u5206\u522b\u653e\u5165ExcelApplication, ExcelWorkbook\u548cExcelWorksheet\u3002<br \/>\n1\uff09\u00a0\u00a0 \u6253\u5f00Excel<br \/>\nExcelApplication1.Connect;<\/p>\n<p>2) \u663e\u793a\u5f53\u524d\u7a97\u53e3\uff1a<br \/>\nExcelApplication1.Visible[0]:=True;<\/p>\n<p>3) \u66f4\u6539 Excel \u6807\u9898\u680f\uff1a<br \/>\nExcelApplication1.Caption := &#8216;\u5e94\u7528\u7a0b\u5e8f\u8c03\u7528 Microsoft Excel&#8217;;<\/p>\n<p>4) \u6dfb\u52a0\u65b0\u5de5\u4f5c\u7c3f\uff1a<br \/>\nExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));<\/p>\n<p>5) \u6dfb\u52a0\u65b0\u5de5\u4f5c\u8868\uff1a<br \/>\nvar Temp_Worksheet: _WorkSheet;<br \/>\nbegin<br \/>\nTemp_Worksheet:=ExcelWorkbook1.<br \/>\nWorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;<br \/>\nExcelWorkSheet1.ConnectTo(Temp_WorkSheet);End;<\/p>\n<p>6) \u6253\u5f00\u5df2\u5b58\u5728\u7684\u5de5\u4f5c\u7c3f\uff1a<br \/>\nExcelApplication1.Workbooks.Open (c:\\a.xls<br \/>\nEmptyParam,EmptyParam,EmptyParam,EmptyParam,<br \/>\nEmptyParam,EmptyParam,EmptyParam,EmptyParam,<br \/>\nEmptyParam,EmptyParam,EmptyParam,EmptyParam,0)<\/p>\n<p>7) \u8bbe\u7f6e\u7b2c2\u4e2a\u5de5\u4f5c\u8868\u4e3a\u6d3b\u52a8\u5de5\u4f5c\u8868\uff1a<br \/>\nExcelApplication1.WorkSheets[2].Activate;\u00a0\u00a0 \u6216<br \/>\nExcelApplication1.WorksSheets[ &#8216;Sheet2&#8217; ].Activate;<\/p>\n<p>8) \u7ed9\u5355\u5143\u683c\u8d4b\u503c\uff1a<br \/>\nExcelApplication1.Cells[1,4].Value := &#8216;\u7b2c\u4e00\u884c\u7b2c\u56db\u5217&#8217;;<\/p>\n<p>9) \u8bbe\u7f6e\u6307\u5b9a\u5217\u7684\u5bbd\u5ea6\uff08\u5355\u4f4d\uff1a\u5b57\u7b26\u4e2a\u6570\uff09\uff0c\u4ee5\u7b2c\u4e00\u5217\u4e3a\u4f8b\uff1a<br \/>\nExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5;<\/p>\n<p>10) \u8bbe\u7f6e\u6307\u5b9a\u884c\u7684\u9ad8\u5ea6\uff08\u5355\u4f4d\uff1a\u78c5\uff09\uff081\u78c5\uff1d0.035\u5398\u7c73\uff09\uff0c\u4ee5\u7b2c\u4e8c\u884c\u4e3a\u4f8b\uff1a<br \/>\nExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1\/0.035; \/\/ 1\u5398\u7c73<\/p>\n<p>11) \u5728\u7b2c8\u884c\u4e4b\u524d\u63d2\u5165\u5206\u9875\u7b26\uff1a<br \/>\nExcelApplication1.WorkSheets[1].Rows.PageBreak := 1;<\/p>\n<p>12) \u5728\u7b2c8\u5217\u4e4b\u524d\u5220\u9664\u5206\u9875\u7b26\uff1a<br \/>\nExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0;<\/p>\n<p>13) \u6307\u5b9a\u8fb9\u6846\u7ebf\u5bbd\u5ea6\uff1a<br \/>\nExcelApplication1.ActiveSheet.Range[ &#8216;B3:D4&#8217; ].Borders[2].Weight := 3;<br \/>\n1-\u5de6\u00a0\u00a0\u00a0\u00a0 2-\u53f3\u00a0\u00a0\u00a0 3-\u9876\u00a0\u00a0\u00a0\u00a0 4-\u5e95\u00a0\u00a0\u00a0 5-\u659c( \\ )\u00a0\u00a0\u00a0\u00a0\u00a0 6-\u659c( \/ )<\/p>\n<p>14) \u6e05\u9664\u7b2c\u4e00\u884c\u7b2c\u56db\u5217\u5355\u5143\u683c\u516c\u5f0f\uff1a<br \/>\nExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;<\/p>\n<p>15) \u8bbe\u7f6e\u7b2c\u4e00\u884c\u5b57\u4f53\u5c5e\u6027\uff1a<br \/>\nExcelApplication1.ActiveSheet.Rows[1].Font.Name := &#8216;\u96b6\u4e66&#8217;;<br \/>\nExcelApplication1.ActiveSheet.Rows[1].Font.Color\u00a0\u00a0 := clBlue;<br \/>\nExcelApplication1.ActiveSheet.Rows[1].Font.Bold\u00a0\u00a0\u00a0 := True;<br \/>\nExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True;<\/p>\n<p>16) \u8fdb\u884c\u9875\u9762\u8bbe\u7f6e\uff1a<br \/>\na.\u9875\u7709\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.CenterHeader := &#8216;\u62a5\u8868\u6f14\u793a&#8217;;<br \/>\nb.\u9875\u811a\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.CenterFooter := &#8216;\u7b2c&amp;P\u9875&#8217;;<br \/>\nc.\u9875\u7709\u5230\u9876\u7aef\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2\/0.035;<br \/>\nd.\u9875\u811a\u5230\u5e95\u7aef\u8fb9\u8ddd3cm\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3\/0.035;<br \/>\ne.\u9876\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2\/0.035;<br \/>\nf.\u5e95\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2\/0.035;<br \/>\ng.\u5de6\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2\/0.035;<br \/>\nh.\u53f3\u8fb9\u8ddd2cm\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2\/0.035;<br \/>\ni.\u9875\u9762\u6c34\u5e73\u5c45\u4e2d\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2\/0.035;<br \/>\nj.\u9875\u9762\u5782\u76f4\u5c45\u4e2d\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2\/0.035;<br \/>\nk.\u6253\u5370\u5355\u5143\u683c\u7f51\u7ebf\uff1a<br \/>\nExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True;<\/p>\n<p>17) \u62f7\u8d1d\u64cd\u4f5c\uff1a<br \/>\na.\u62f7\u8d1d\u6574\u4e2a\u5de5\u4f5c\u8868\uff1a<br \/>\nExcelApplication1.ActiveSheet.Used.Range.Copy;<br \/>\nb.\u62f7\u8d1d\u6307\u5b9a\u533a\u57df\uff1a<br \/>\nExcelApplication1.ActiveSheet.Range[ &#8216;A1:E2&#8217; ].Copy;<br \/>\nc.\u4eceA1\u4f4d\u7f6e\u5f00\u59cb\u7c98\u8d34\uff1a<br \/>\nExcelApplication1.ActiveSheet.Range.[ &#8216;A1&#8217; ].PasteSpecial;<br \/>\nd.\u4ece\u6587\u4ef6\u5c3e\u90e8\u5f00\u59cb\u7c98\u8d34\uff1a<br \/>\nExcelApplication1.ActiveSheet.Range.PasteSpecial;<\/p>\n<p>18) \u63d2\u5165\u4e00\u884c\u6216\u4e00\u5217\uff1a<br \/>\na. ExcelApplication1.ActiveSheet.Rows[2].Insert;<br \/>\nb. ExcelApplication1.ActiveSheet.Columns[1].Insert;<\/p>\n<p>19) \u5220\u9664\u4e00\u884c\u6216\u4e00\u5217\uff1a<br \/>\na. ExcelApplication1.ActiveSheet.Rows[2].Delete;<br \/>\nb. ExcelApplication1.ActiveSheet.Columns[1].Delete;<\/p>\n<p>20) \u6253\u5370\u9884\u89c8\u5de5\u4f5c\u8868\uff1a<br \/>\nExcelApplication1.ActiveSheet.PrintPreview;<\/p>\n<p>21) \u6253\u5370\u8f93\u51fa\u5de5\u4f5c\u8868\uff1a<br \/>\nExcelApplication1.ActiveSheet.PrintOut;<\/p>\n<p>22) \u5de5\u4f5c\u8868\u4fdd\u5b58\uff1a<br \/>\nif not ExcelApplication1.ActiveWorkBook.Saved then<br \/>\nExcelApplication1.ActiveSheet.PrintPreview;<\/p>\n<p>23) \u5de5\u4f5c\u8868\u53e6\u5b58\u4e3a\uff1a<br \/>\nExcelApplication1.SaveAs( &#8216;C:\\Excel\\Demo1.xls&#8217; );<\/p>\n<p>24) \u653e\u5f03\u5b58\u76d8\uff1a<br \/>\nExcelApplication1.ActiveWorkBook.Saved := True;<\/p>\n<p>25) \u5173\u95ed\u5de5\u4f5c\u7c3f\uff1a<br \/>\nExcelApplication1.WorkBooks.Close;<\/p>\n<p>26) \u9000\u51fa Excel\uff1a<br \/>\nExcelApplication1.Quit;<br \/>\nExcelApplication1.Disconnect;<\/p>\n<p>\u793a\u4f8b\u4ee3\u7801\uff1a<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\nimplementation\r\nuses ComOBJ;\r\n\r\n{$R *.dfm}\r\nfunction Check(ID:string):boolean;\r\nvar excelAPP:variant;\r\n  I: Integer;\r\n  IDX:string;\r\nbegin\r\ntry\r\n  ExcelAPP:=CreateOleObject('Excel.Application');\r\n  ExcelApp.Workbooks.Open('D:\\Program Files\\Embarcadero\\Projects\\\u64cd\u4f5cExcel\\\u8d2b1.xls');\r\n  for I := 2 to 436 do\r\n  begin\r\n    IDX:=trim(excelAPP.cells&#x5B;i,3].value);\r\n    if(IDX=ID) then begin  Result:=true; exit;  end;\r\n  end;\r\n  Result:=False;\r\nfinally\r\n  ExcelApp.WorkBooks.Close;\r\n  ExcelAPP.Quit;\r\nend;\r\nend;\r\n\r\nprocedure TForm1.Button1Click(Sender: TObject);\r\nvar ExcelAPP:Variant;\r\n  I: Integer;\r\n  ID:string;\r\nbegin\r\ntry\r\n  ExcelAPP:=CreateOleObject('Excel.Application');\r\n  ExcelApp.Workbooks.Open('D:\\Program Files\\Embarcadero\\Projects\\\u64cd\u4f5cExcel\\\u59562.xls');\r\n  for I := 2 to 527 do\r\n  begin\r\n    Label1.Caption:=IntToStr(i)+'\u884c';\r\n    ID:=trim(ExcelAPP.cells&#x5B;I,2]);\r\n    if(Check(id)) then\r\n    begin\r\n      ExcelAPP.cells&#x5B;i,17].value:='\u5df2\u5efa\u6863';\r\n    end;\r\n  end;\r\n  Label1.Caption:='\u5168\u90e8\u5b8c\u6210,\u6b63\u5728\u4fdd\u5b58......';\r\n  ExcelApp.Save;    \/\/\u4fdd\u5b58\r\n  Label1.Caption:='\u5168\u90e8\u5b8c\u6210,\u5df2\u4fdd\u5b58';\r\nfinally\r\n  ExcelApp.WorkBooks.Close;\r\n  ExcelAPP.Quit;\r\nend;\r\nend;\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>(\u4e00) \u4f7f\u7528\u52a8\u6001\u521b\u5efa\u7684\u65b9\u6cd5 \u9996\u5148\u521b\u5efa Excel \u5bf9\u8c61\uff0c\u4f7f\u7528ComObj: var ExcelApp: Var [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-655","post","type-post","status-publish","format-standard","hentry","category-code_related"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/comments?post=655"}],"version-history":[{"count":1,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/655\/revisions"}],"predecessor-version":[{"id":4717,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/655\/revisions\/4717"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}