97 lines
3.1 KiB
C#
97 lines
3.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
//using Excel = Microsoft.Office.Interop.Excel;
|
|
using System.Reflection;
|
|
|
|
using OfficeOpenXml;
|
|
using System.Drawing;
|
|
using OfficeOpenXml.Style;
|
|
|
|
namespace NewsCrawler
|
|
{
|
|
public class ExcelHandler
|
|
{
|
|
string m_strFileName = "";
|
|
string m_strToday = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
|
public ExcelHandler(string strFileName)
|
|
{
|
|
m_strFileName = strFileName;
|
|
}
|
|
|
|
private void Create()
|
|
{
|
|
FileInfo newFile = new FileInfo(m_strFileName);
|
|
ExcelPackage package = new ExcelPackage(newFile);
|
|
ExcelWorksheet Sheet = package.Workbook.Worksheets.Add("first");
|
|
Sheet.Cells[1, 1].Value = "날짜";
|
|
Sheet.Cells[1, 2].Value = "기사 시간";
|
|
Sheet.Cells[1, 3].Value = "받은 시간";
|
|
Sheet.Cells[1, 4].Value = "요청 시간";
|
|
Sheet.Cells[1, 5].Value = "출처";
|
|
Sheet.Cells[1, 6].Value = "제목";
|
|
Sheet.Cells[1, 7].Value = "종목명";
|
|
Sheet.Cells[1, 8].Value = "시가";
|
|
Sheet.Cells[1, 9].Value = "저가";
|
|
Sheet.Cells[1, 10].Value = "대비";
|
|
Sheet.Cells[1, 11].Value = "고가";
|
|
Sheet.Cells[1, 12].Value = "대비";
|
|
Sheet.Cells[1, 13].Value = "링크";
|
|
|
|
package.Save();
|
|
}
|
|
|
|
public bool AddRow(string strNewsTime, string strResTime, float fReqTime, string strRef, string strTitle, string strCodeName,
|
|
int iPriceS, int iPriceLow, float fPriceLowP, int iPriceHigh, float fPriceHighP, string strLink)
|
|
{
|
|
lock(this)
|
|
{
|
|
if(File.Exists(m_strFileName) == false)
|
|
Create();
|
|
|
|
FileInfo newFile = new FileInfo(m_strFileName);
|
|
ExcelPackage package = new ExcelPackage(newFile);
|
|
ExcelWorksheet Sheet = package.Workbook.Worksheets["first"];
|
|
int iRow = Sheet.Dimension.Rows+1;
|
|
Sheet.Cells[iRow, 1].Value = m_strToday;
|
|
Sheet.Cells[iRow, 2].Value = strNewsTime;
|
|
Sheet.Cells[iRow, 3].Value = strResTime;
|
|
Sheet.Cells[iRow, 4].Value = fReqTime;
|
|
Sheet.Cells[iRow, 5].Value = strRef;
|
|
Sheet.Cells[iRow, 6].Value = strTitle;
|
|
Sheet.Cells[iRow, 7].Value = strCodeName;
|
|
Sheet.Cells[iRow, 8].Value = iPriceS;
|
|
Sheet.Cells[iRow, 8].Style.Numberformat.Format = "###,###,##0";
|
|
Sheet.Cells[iRow, 9].Value = iPriceLow;
|
|
Sheet.Cells[iRow, 9].Style.Numberformat.Format = "###,###,##0";
|
|
Sheet.Cells[iRow, 10].Value = fPriceLowP;
|
|
Sheet.Cells[iRow, 10].Style.Numberformat.Format = "###,###,##0.00";
|
|
if(fPriceLowP > 0)
|
|
Sheet.Cells[iRow, 10].Style.Font.Color.SetColor(Color.Red);
|
|
else if(fPriceLowP < 0)
|
|
Sheet.Cells[iRow, 10].Style.Font.Color.SetColor(Color.Blue);
|
|
Sheet.Cells[iRow, 11].Value = iPriceHigh;
|
|
Sheet.Cells[iRow, 11].Style.Numberformat.Format = "###,###,##0";
|
|
Sheet.Cells[iRow, 12].Value = fPriceHighP;
|
|
Sheet.Cells[iRow, 12].Style.Numberformat.Format = "###,###,##0.00";
|
|
if(fPriceHighP > 0)
|
|
Sheet.Cells[iRow, 12].Style.Font.Color.SetColor(Color.Red);
|
|
else if(fPriceHighP < 0)
|
|
Sheet.Cells[iRow, 12].Style.Font.Color.SetColor(Color.Blue);
|
|
Sheet.Cells[iRow, 13].Value = strLink;
|
|
|
|
|
|
Sheet.Cells.AutoFitColumns(0);
|
|
package.Save();
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|