public Taifex Option(Taifex TaifexItem) { try { //指定來源網頁 WebClient url = new WebClient(); //將網頁來源資料暫存到記憶體內 MemoryStream ms = new MemoryStream(url.DownloadData("http://www.taifex.com.tw/chinese/3/7_12_4_tbl.asp")); //以GoogleFinance為範例 // 使用預設編碼讀入 HTML HtmlDocument doc = new HtmlDocument(); HtmlNode tempNode; doc.Load(ms, Encoding.UTF8); tempNode = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/div[1]/div[1]/div[1]/div[2]/table[1]/tbody[1]/tr[2]/td[1]/table[1]/tbody[1]"); //選擇權契約 TaifexItem.Option_Dealer_Buy = Decimal.Parse(tempNode.SelectSingleNode(@"tr[4]/td[10]").InnerText.Replace(",", "").ToString()); TaifexItem.Option_Dealer_Sell = Decimal.Parse(tempNode.SelectSingleNode(@"tr[4]/td[12]").InnerText.Replace(",", "").ToString()); TaifexItem.Option_Dealer_Net = Decimal.Parse(tempNode.SelectSingleNode(@"tr[4]/td[14]").InnerText.Replace(",", "").ToString()); TaifexItem.Option_Foreign_Buy = Decimal.Parse(tempNode.SelectSingleNode(@"tr[6]/td[8]").InnerText.Replace(",", "").ToString()); TaifexItem.Option_Foreign_Sell = Decimal.Parse(tempNode.SelectSingleNode(@"tr[6]/td[10]").InnerText.Replace(",", "").ToString()); TaifexItem.Option_Foreign_Net = Decimal.Parse(tempNode.SelectSingleNode(@"tr[6]/td[12]").InnerText.Replace(",", "").ToString()); doc = null; url = null; ms.Close(); return(TaifexItem); } catch (System.IO.IOException e) { logger.Error(LogUtility.GetExceptionDetails(e)); return(null); } }
public Taifex Future_Top10(Taifex TaifexItem) { try { //指定來源網頁 WebClient url = new WebClient(); //將網頁來源資料暫存到記憶體內 MemoryStream ms = new MemoryStream(url.DownloadData("http://www.taifex.com.tw/chinese/3/7_8_tbl.asp")); //以GoogleFinance為範例 // 使用預設編碼讀入 HTML HtmlDocument doc = new HtmlDocument(); HtmlNode tempNode; string Text; doc.Load(ms, Encoding.UTF8); tempNode = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/div[1]/div[1]/div[1]/div[1]/div[3]/table[1]/tr[2]/td[1]/table[1]"); //期貨前十大 Text = tempNode.SelectSingleNode(@"tr[5]/td[2]").InnerText; TaifexItem.Future_Top5_Buy = Decimal.Parse(Text.Remove(Text.IndexOf("(")).Replace(",", "").Trim().ToString()); Text = tempNode.SelectSingleNode(@"tr[5]/td[3]").InnerText; TaifexItem.Future_Top5_Buy_Percent = Decimal.Parse(Text.Remove(Text.IndexOf("%")).Trim().ToString()); Text = tempNode.SelectSingleNode(@"tr[5]/td[6]").InnerText; TaifexItem.Future_Top5_Sell = Decimal.Parse(Text.Remove(Text.IndexOf("(")).Replace(",", "").Trim().ToString()); Text = tempNode.SelectSingleNode(@"tr[5]/td[7]").InnerText; TaifexItem.Future_Top5_Sell_Percent = Decimal.Parse(Text.Remove(Text.IndexOf("%")).Trim().ToString()); Text = tempNode.SelectSingleNode(@"tr[5]/td[4]").InnerText; TaifexItem.Future_Top10_Buy = Decimal.Parse(Text.Remove(Text.IndexOf("(")).Replace(",", "").Trim().ToString()); Text = tempNode.SelectSingleNode(@"tr[5]/td[5]").InnerText; TaifexItem.Future_Top10_Buy_Percent = Decimal.Parse(Text.Remove(Text.IndexOf("%")).Trim().ToString()); Text = tempNode.SelectSingleNode(@"tr[5]/td[8]").InnerText; TaifexItem.Future_Top10_Sell = Decimal.Parse(Text.Remove(Text.IndexOf("(")).Replace(",", "").Trim().ToString()); Text = tempNode.SelectSingleNode(@"tr[5]/td[9]").InnerText; TaifexItem.Future_Top10_Sell_Percent = Decimal.Parse(Text.Remove(Text.IndexOf("%")).Trim().ToString()); doc = null; url = null; ms.Close(); return(TaifexItem); } catch (System.IO.IOException e) { logger.Error(LogUtility.GetExceptionDetails(e)); return(null); } }
public Taifex UpdateTaifex() { try { Taifex TaifexItem = new Taifex(); TaifexItem = Future(TaifexItem); TaifexItem = Option(TaifexItem); TaifexItem = Future_Top10(TaifexItem); TaifexItem = Option_Top10(TaifexItem); db.Taifexes.Add(TaifexItem); db.SaveChanges(); return(TaifexItem); } catch (System.IO.IOException e) { logger.Error(LogUtility.GetExceptionDetails(e)); return(null); } }
public ActionResult TaifexXLS() { Taifex TaifexItem = new Taifex(); TaifexItem = db.Taifexes.OrderByDescending(p => p.QuotedDate).Take(1).Single(); Workbook workbook = new Workbook(); //workbook.LoadFromFile(Server.MapPath("https://uploadmvc.blob.core.windows.net/mvc/Upload/Taifex.xls")); WebClient webClient = new WebClient(); using (MemoryStream ms = new MemoryStream(webClient.DownloadData("https://uploadmvc.blob.core.windows.net/mvc/Upload/Taifex.xls"))) { workbook.LoadFromStream(ms); } Worksheet sheet = workbook.Worksheets[0]; //期貨 sheet.Range["A2"].Value = "日期"; sheet.Range["B2"].Value = "台股期貨"; sheet.Range["C2"].Value = "多方"; sheet.Range["D2"].Value = "增減"; sheet.Range["E2"].Value = "空方"; sheet.Range["F2"].Value = "增減"; sheet.Range["G2"].Value = "多空淨額"; sheet.Range["A3"].Value = TaifexItem.QuotedDate.ToString("yyyy/MM/dd"); sheet.Range["B3"].Value = "自營商"; sheet.Range["C3"].Value = TaifexItem.Future_Dealer_Buy.ToString(); sheet.Range["E3"].Value = TaifexItem.Future_Dealer_Sell.ToString(); sheet.Range["G3"].Value = TaifexItem.Future_Dealer_Net.ToString(); sheet.Range["B4"].Value = "外資"; sheet.Range["C4"].Value = TaifexItem.Future_Foreign_Buy.ToString(); sheet.Range["E4"].Value = TaifexItem.Future_Foreign_Sell.ToString(); sheet.Range["G4"].Value = TaifexItem.Future_Foreign_Net.ToString(); sheet.Range["A7"].Value = "前五大"; sheet.Range["A8"].Value = "多方"; sheet.Range["B8"].Value = "部位"; sheet.Range["C8"].Value = "空方"; sheet.Range["D8"].Value = "部位"; sheet.Range["A9"].Value = TaifexItem.Future_Top5_Buy.ToString(); sheet.Range["B9"].Value = TaifexItem.Future_Top5_Buy_Percent.ToString("0.00") + "%"; sheet.Range["C9"].Value = TaifexItem.Future_Top5_Sell.ToString(); sheet.Range["D9"].Value = TaifexItem.Future_Top5_Sell_Percent.ToString("0.00") + "%"; sheet.Range["A10"].Value = "前十大"; sheet.Range["A11"].Value = "多方"; sheet.Range["B11"].Value = "部位"; sheet.Range["C11"].Value = "空方"; sheet.Range["D11"].Value = "部位"; sheet.Range["A12"].Value = TaifexItem.Future_Top10_Buy.ToString(); sheet.Range["B12"].Value = TaifexItem.Future_Top10_Buy_Percent.ToString("0.00") + "%"; sheet.Range["C12"].Value = TaifexItem.Future_Top10_Sell.ToString(); sheet.Range["D12"].Value = TaifexItem.Future_Top10_Sell_Percent.ToString("0.00") + "%"; //選擇權 sheet.Range["J1"].Value = "選擇權契約"; sheet.Range["K2"].Value = "多方"; sheet.Range["L2"].Value = "增減"; sheet.Range["M2"].Value = "空方"; sheet.Range["N2"].Value = "增減"; sheet.Range["O2"].Value = "多空淨額"; sheet.Range["J3"].Value = "自營商"; sheet.Range["K3"].Value = TaifexItem.Option_Dealer_Buy.ToString(); sheet.Range["M3"].Value = TaifexItem.Option_Dealer_Sell.ToString(); sheet.Range["O3"].Value = TaifexItem.Option_Dealer_Net.ToString(); sheet.Range["J4"].Value = "外資"; sheet.Range["K4"].Value = TaifexItem.Option_Foreign_Buy.ToString(); sheet.Range["M4"].Value = TaifexItem.Option_Foreign_Sell.ToString(); sheet.Range["O4"].Value = TaifexItem.Option_Foreign_Net.ToString(); sheet.Range["J7"].Value = "前五大"; sheet.Range["J8"].Value = "買方買權"; sheet.Range["K8"].Value = "部位"; sheet.Range["L8"].Value = "賣方賣權"; sheet.Range["M8"].Value = "部位"; sheet.Range["N8"].Value = "買方賣權"; sheet.Range["O8"].Value = "部位"; sheet.Range["P8"].Value = "賣方買權"; sheet.Range["Q8"].Value = "部位"; sheet.Range["J9"].Value = TaifexItem.Option_Top5_Long_Buy.ToString(); sheet.Range["K9"].Value = TaifexItem.Option_Top5_Long_Buy_Percent.ToString("0.00") + "%"; sheet.Range["L9"].Value = TaifexItem.Option_Top5_Short_Sell.ToString(); sheet.Range["M9"].Value = TaifexItem.Option_Top5_Short_Sell_Percent.ToString("0.00") + "%"; sheet.Range["N9"].Value = TaifexItem.Option_Top5_Long_Sell.ToString(); sheet.Range["O9"].Value = TaifexItem.Option_Top5_Long_Sell_Percent.ToString("0.00") + "%"; sheet.Range["P9"].Value = TaifexItem.Option_Top5_Short_Buy.ToString(); sheet.Range["Q9"].Value = TaifexItem.Option_Top5_Short_Buy_Percent.ToString("0.00") + "%"; sheet.Range["J10"].Value = "前十大"; sheet.Range["J11"].Value = "買方買權"; sheet.Range["K11"].Value = "部位"; sheet.Range["L11"].Value = "賣方賣權"; sheet.Range["M11"].Value = "部位"; sheet.Range["N11"].Value = "買方賣權"; sheet.Range["O11"].Value = "部位"; sheet.Range["P11"].Value = "賣方買權"; sheet.Range["Q11"].Value = "部位"; sheet.Range["J12"].Value = TaifexItem.Option_Top10_Long_Buy.ToString(); sheet.Range["K12"].Value = TaifexItem.Option_Top10_Long_Buy_Percent.ToString("0.00") + "%"; sheet.Range["L12"].Value = TaifexItem.Option_Top10_Short_Sell.ToString(); sheet.Range["M12"].Value = TaifexItem.Option_Top10_Short_Sell_Percent.ToString("0.00") + "%"; sheet.Range["N12"].Value = TaifexItem.Option_Top10_Long_Sell.ToString(); sheet.Range["O12"].Value = TaifexItem.Option_Top10_Long_Sell_Percent.ToString("0.00") + "%"; sheet.Range["P12"].Value = TaifexItem.Option_Top10_Short_Buy.ToString(); sheet.Range["Q12"].Value = TaifexItem.Option_Top10_Short_Buy_Percent.ToString("0.00") + "%"; sheet.Range["A1"].Value = "期貨契約"; MemoryStream stram = new MemoryStream(); workbook.SaveToStream(stram, FileFormat.Version97to2003); xlsService.UploadXLSAzure("mvc", "Upload", "Taifex-" + TaifexItem.QuotedDate.ToString("yyyy.MM.dd") + ".xls", stram); //workbook.SaveToFile(Server.MapPath("https://uploadmvc.blob.core.windows.net/mvc/Upload/Taifex-" + TaifexItem.QuotedDate.ToString("yyyy.MM.dd") + ".xls"), FileFormat.Version97to2003); sheet = null; workbook = null; TempData["Date"] = TaifexItem.QuotedDate.ToString("yyyy.MM.dd"); return(RedirectToAction("DownloadTaifexExcel")); }