Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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"));
        }