반응형
public void SetLogData(string strLog)
{
	try
	{
		string temp;
		string DirPath = Application.StartupPath + "\Log"; //여기 Log 폴더 만들어서 사용하자
		//Log 디렉토리 체크 후 폴더 만들기
		DirectoryInfo di = new DirectoryInfo(DirPath);

		if (di.Exists == false)
		{
			di.Create();
		}

		string FilePath = DirPath + "\\Log_" + DateTime.Today.ToString("yyyyMMdd") + ".log";
		FileInfo fi = new FileInfo(FilePath);

		if (!fi.Exists)
		{
			using (StreamWriter sw = new StreamWriter(FilePath))
			{
				temp = string.Format("[{0}] {1}", DateTime.Now, strLog);
				sw.WriteLine(temp);
				sw.Close();
			}
		}
		else
		{
			using (StreamWriter sw = File.AppendText(FilePath))
			{
				temp = string.Format("[{0}] {1}", DateTime.Now, strLog);
				sw.WriteLine(temp);
				sw.Close();
			}
		}
	}
	catch (Exception ex)
	{
		string strError = ex.Message;
	}
}
//참고 : https://dodo1054.tistory.com/85

 

반응형
string _SendUrl = "";
string _GetUrl = "";
bool _isMssiExit = true;
bool _isImoExit = true;

Thread thread = new Thread(new ThreadStart(GetWebPageWorker));
Thread thread2 = new Thread(new ThreadStart(GetWebPageWorker));

_SendUrl = ""; //초기화
_GetUrl = "";  //초기화

_SendUrl = "URL링크"
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();

//Wating Thread
while(_isMssiExit)
{
	if (_GetUrl.IndexOf("shipid:") > -1)
	{
		_isMssiExit = false;
		thread.Abort();
	}
	else if (_GetUrl == _SendUrl)
	{
		thread.Abort();

		_SendUrl = "URL링크"
		thread2.SetApartmentState(ApartmentState.STA);
		thread2.Start();
		thread2.Join();

		while (_isImoExit)
		{
			if(_GetUrl.IndexOf("shipid:") > -1)
			{
				_isMssiExit = false;
				_isImoExit = false;
				thread2.Abort();
			}
			else if (_GetUrl == _SendUrl)
			{
				throw new ArgumentNullException("오류");
			}
		}
	}
}

//URL 가져오는 함수
protected void GetWebPageWorker()
{
	using (WebBrowser browser = new WebBrowser())
	{
		//  browser.ClientSize = new Size(_width, _height);
		browser.ScrollBarsEnabled = false;
		browser.ScriptErrorsSuppressed = true;
		browser.Navigate(_SendUrl);

		// Wait for control to load page
		while (browser.ReadyState != WebBrowserReadyState.Complete)
		Application.DoEvents();

		_GetUrl = browser.Url.AbsoluteUri; //Redirct 한 URL
	}
}
반응형
//Youtube Rss Atom형식의 XML을 파싱하는 소스
using(XmlTextReader rssReader = new XmlTextReader("Youtube URl")) 
{ 
	XmlDocument xmlDoc = new XmlDocument(); //XML 객체 생성      
	xmlDoc.Load(rssReader); //URL Load

	//Select all nodes starting with "entry"
	XmlNodeList xmlNodeList = xmlDoc.GetElementsByTagName("entry"); //XML에 entry태그의 데이터를 전부 가지고 와서 List로 만들어준다.

	//각각의 노드로 만들어서 반복문을 돌린다.
	foreach(XmlNode node in xmlNodeList) 
	{ 	
		XmlDocument innerXmlDocument = new XmlDocument(); //내부 객체를 파싱하기 위한 XmlDocument를 생성한다.
		innerXmlDocument.LoadXml(node.OuterXml); //entry 노드의 데이터를 파싱한다.

		//innerXmlDocument.GetElementsByTagName("media:title")[0].InnerText => XML 태그의 텍스트를 전부 가지고 온다.
		//innerXmlDocument.GetElementsByTagName("media:thumbnail")[0].Attributes["url"].Value 태그 안에 있는 속성의 값만 가지고 온다.

		string vYoutube_URL = innerXmlDocument.GetElementsByTagName("link")[0].Attributes["href"].Value;
		string vThumbnail_URL innerXmlDocument.GetElementsByTagName("media:thumbnail")[0].Attributes["url"].Value;
		string vTitle = innerXmlDocument.GetElementsByTagName("media:title")[0].InnerText;
		string vDescription = innerXmlDocument.GetElementsByTagName("media:description")[0].InnerText;
	}
}
반응형
using (ZipFile zip = new ZipFile())
{
    DirectoryInfo dir = new DirectoryInfo(Server.MapPath(압축 할 파일 경로);
    FileInfo[] infos = dir.GetFiles();
    string[] files1 = new string[infos.Length];

    for (int i = 0; i < infos.Length; i++)
    {
        files1[i] = infos[i].FullName;
    }

    byte[] b = null;
    string d = null;

    foreach (string file in files1)
    {
        // 시스템의 기본 인코딩 타입으로 읽어서
        b = System.Text.Encoding.Default.GetBytes(file);
        // IBM437로 변환해 준다.
        d = System.Text.Encoding.GetEncoding("IBM437").GetString(b);

        zip.AddEntry(d, "", System.IO.File.ReadAllBytes(file));
    }

    zip.Save(압축 파일 경로 및 압축 파일명.);
}
반응형
string path = Server.MapPath("~/")+"\\" + DateTime.Now.ToString("yyyyMMdd");

//현재 날짜 파일 생성
DirectoryInfo di = new DirectoryInfo(path); //폴더 관련 객체
if (di.Exists != true)
{
	di.Create();
}

//압축 파일 넣을 경로 생성
string strDateTimeDi = DateTime.Now.ToString("yyyyMMddHHmmssFFF");
di.Refresh();

path += "/"+strDateTimeDi;

di = new DirectoryInfo(path);
if (di.Exists != true)
{
	di.Create();
}

//압축 만들기
using (ZipFile zip = new ZipFile())
{     
    zip.AddDirectory(폴더 경로);
    zip.Save("압축 파일 만들 경로 및 압축파일 명.");
}
반응형
ds = JsonConvert.DeserializeObject(srtResult);

//strJson = value.vJsonData.ToString(); //Object로 보내기 위한 작업
//여기서 부터 엑셀 데이터 만들기. (Ds)
//ds = JsonConvert.DeserializeObject(value.vJsonData);

Excel.Application ap = new Excel.Application();
Excel.Workbook excelWorkBook = ap.Workbooks.Add();

foreach (DataTable Excel_dt in ds.Tables)
{
	Excel.Worksheet ws = excelWorkBook.Sheets.Add();
	ws.Name = Excel_dt.TableName;

	for(int columnHeaderIndex = 1; columnHeaderIndex <= Excel_dt.Columns.Count; columnHeaderIndex++)
	{
		ws.Cells[1, columnHeaderIndex] = Excel_dt.Columns[columnHeaderIndex -1].ColumnName;
		ws.Cells[1, columnHeaderIndex].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightSteelBlue);
	}

	for(int rowIndex = 0; rowIndex < Excel_dt.Rows.Count; rowIndex++)
	{
		for(int columnIndex = 0; columnIndex < Excel_dt.Columns.Count; columnIndex++)
		{
			ws.Cells[rowIndex + 2 , columnIndex + 1] = Excel_dt.Rows[rowIndex].ItemArray[columnIndex].ToString();
		}
	}
	ws.Columns.AutoFit();
}

//파일저장
string strDateTime = strDateTime = DateTime.Now.ToString("yyyyMMddHHmmssFFF");
string strPath = "Files/";
//System.IO.FileInfo fi;
//fi = new System.IO.FileInfo(Server.MapPath("~/Files/")+strDateTime+".xlsx");

excelWorkBook.SaveAs(Server.MapPath("~/"+strPath)+strDateTime+".xlsx",Excel.XlFileFormat.xlOpenXMLWorkbook);
excelWorkBook.Close(true);
ap.Quit();

================================필독 ========================================

- import excel이 필요합니다. office12에 있습니다.

- 데이터 많으면 굉장히 느립니다. 

더 빠른 방법 참고 https://1061025.tistory.com/54

 

 

 

반응형
[HttpPost]
public ActionResult GetRSSData(JsonData value)
{
	DataTable dt = new DataTable();
	dt = JsonConvert.DeserializeObject(value.vJsonData);
	string str_RssData = "";

	XmlDocument rssXmlDoc = new XmlDocument();
	rssXmlDoc.Load(dt.Rows[0]["Blog_URL"].ToString());

	str_RssData = rssXmlDoc.InnerXml;

	//XmlNodeList rssNodes = rssXmlDoc.SelectNodes("rss/channel/item");
	//StringBuilder rssContent = new StringBuilder();

	return this.Content(str_RssData, "text/xml");
}

 

반응형
[HttpGet]
public ActionResult GetCargoInfo(RtnFilesInfo value)
{
string str_crkyCn = value.crkyCn;
string str_cargMtNo = value.cargMtNo;
string str_mblNo = value.mblNo;
string str_hblNo = value.hblNo;
string str_blYy = value.blYy;

//화물관리번호 , BL 사용해서 했는지 확인 여부 필요.

	try
	{
		string url = "https://unipass.customs.go.kr:38010/ext/rest/cargCsclPrgsInfoQry/retrieveCargCsclPrgsInfo?crkyCn=i220k129u161i054w030p040s2&cargMtNo=00ANLU083N59007001";
		//uri = new Uri(url); // string 을 Uri 로 형변환
		string responseText = string.Empty;

		HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
		request.Method = "GET";

		using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse())
		{
			HttpStatusCode status = resp.StatusCode;
			Console.WriteLine(status);  // 정상이면 "OK"


			Stream respStream = resp.GetResponseStream();
			using (StreamReader sr = new StreamReader(respStream))
			{
				responseText = sr.ReadToEnd();
				Console.WriteLine(responseText);
			}
		}
	}
	catch(Exception ex)
	{
		Console.WriteLine(ex.Message);
	}

	string sURL;
	sURL = "https://unipass.customs.go.kr:38010/ext/rest/cargCsclPrgsInfoQry/retrieveCargCsclPrgsInfo?crkyCn=i220k129u161i054w030p040s2&cargMtNo=00ANLU083N59007001";

	WebRequest wrGETURL;
	wrGETURL = WebRequest.Create(sURL);
	WebProxy myProxy = new WebProxy("myproxy", 80);

	myProxy.BypassProxyOnLocal = true;

	wrGETURL.Proxy = WebProxy.GetDefaultProxy();

	Stream objStream;
	objStream = wrGETURL.GetResponse().GetResponseStream();

	StreamReader objReader = new StreamReader(objStream);

	string sLine = "";
	int i = 0;
	string ReadingText = "";
	while (sLine != null)
	{
		i++;
		sLine = objReader.ReadLine();
		ReadingText += sLine;
		//if (sLine != null)
		//    Console.WriteLine("{0}:{1}", i, sLine);
	}
	//MessageBox.Show(ReadingText);
	//Console.WriteLine(ReadingText);
				//Console.ReadLine();
	System.Diagnostics.Debug.WriteLine(ReadingText);

	return this.Content(ReadingText, "text/xml");
}

+ Recent posts