From 4359369a91a6b607ec61aef2e820a7180e4c6598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=8C=90=EB=8F=8C?= Date: Sun, 19 Nov 2023 20:50:43 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/Git/AbstractGit.cs | 16 ++-- Server/Git/ExcelManager.cs | 109 ++++++++++++++++------ Server/Git/XlsxToJson.cs | 22 ++++- Server/obj/Debug/net6.0/Server.dll | Bin 18944 -> 20480 bytes Server/obj/Debug/net6.0/Server.pdb | Bin 26268 -> 26888 bytes Server/obj/Debug/net6.0/ref/Server.dll | Bin 9216 -> 9216 bytes Server/obj/Debug/net6.0/refint/Server.dll | Bin 9216 -> 9216 bytes 7 files changed, 107 insertions(+), 40 deletions(-) diff --git a/Server/Git/AbstractGit.cs b/Server/Git/AbstractGit.cs index f4fd135..ecfc9a6 100644 --- a/Server/Git/AbstractGit.cs +++ b/Server/Git/AbstractGit.cs @@ -7,9 +7,9 @@ namespace Server.Git public abstract class AbstractGit { public bool isRestart; - string repositoryPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "excel"); + string _repositoryPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "excel"); - public string _repositoryPath { get { return repositoryPath; } } + public string repositoryPath { get { return _repositoryPath; } } /// /// 가장먼저 시작해야 하는 스크립트 @@ -36,18 +36,18 @@ namespace Server.Git private void Pull() { - if (!Directory.Exists(repositoryPath)) + if (!Directory.Exists(_repositoryPath)) { - Directory.CreateDirectory(repositoryPath); - RepositorySet($"clone {STATICS.remoteUrl} {repositoryPath}", null); + Directory.CreateDirectory(_repositoryPath); + RepositorySet($"clone {STATICS.remoteUrl} {_repositoryPath}", null); //main브렌치로 세팅 - RepositorySet("branch -m main", repositoryPath); - RepositorySet("branch --set-upstream-to=origin/main main", repositoryPath); + RepositorySet("branch -m main", _repositoryPath); + RepositorySet("branch --set-upstream-to=origin/main main", _repositoryPath); } // pull 명령어 실행 - RepositorySet("pull", repositoryPath); + RepositorySet("pull", _repositoryPath); } private static void RepositorySet(string command, string workingDirectory) diff --git a/Server/Git/ExcelManager.cs b/Server/Git/ExcelManager.cs index 0d4ba73..0618cc7 100644 --- a/Server/Git/ExcelManager.cs +++ b/Server/Git/ExcelManager.cs @@ -1,25 +1,43 @@ using Aspose.Cells; +using NLog; namespace Server.Git { class ExcelManager { - Dictionary>> _dicViewer; + private static readonly NLog.ILogger logger = LogManager.GetCurrentClassLogger(); + public class sheet + { + string _name; + public string name { get { return _name; } } + List _variable; + public List variable { get { return _variable; } } + List _type; + public List type { get { return _type; } } + Dictionary> _dicViewer; + public Dictionary> dicViewer { get { return _dicViewer; } } + + public sheet(string name, List variable, List type, Dictionary> dicViewer) + { + this._name = name; + this._variable = variable; + this._type = type; + this._dicViewer = dicViewer; + } + } + List _sheets; + + public List sheets { get { return _sheets; } } + string _pathFile; public ExcelManager(string path, string file) { _pathFile = path + "\\" + file; - Console.WriteLine(_pathFile); - _dicViewer = new Dictionary>>(); - } - public Dictionary>> dicViewerOut - { - get { return _dicViewer; } } - public void Play() + public bool Play() { - ExcelLoad(_pathFile); + return ExcelLoad(_pathFile); } public bool ExcelLoad(string path)//엑셀 로드 { @@ -29,34 +47,67 @@ namespace Server.Git // 모든 워크시트 가져오기 WorksheetCollection collection = wb.Worksheets; + _sheets = new List(); + // 모든 워크시트 반복 - for (int worksheetIndex = 0; worksheetIndex < collection.Count; worksheetIndex++) + try { - - // 인덱스를 사용하여 워크시트 가져오기 - Worksheet worksheet = collection[worksheetIndex]; - - // 워크시트 이름 인쇄 - Console.WriteLine("Worksheet: " + worksheet.Name); - - // 행과 열의 수 얻기 - int rows = worksheet.Cells.MaxDataRow; - int cols = worksheet.Cells.MaxDataColumn; - - // 행 반복 - for (int i = 0; i < rows; i++) + for (int worksheetIndex = 0; worksheetIndex < collection.Count; worksheetIndex++) { + //변수이름 + List variable = new List(); + //변수 타입 + List type = new List(); + Dictionary> dicViewer = new Dictionary>(); - // 선택한 행의 각 열 반복 - for (int j = 0; j < cols; j++) + // 인덱스를 사용하여 워크시트 가져오기 + Worksheet worksheet = collection[worksheetIndex]; + + // 행과 열의 수 얻기 + int vertical = worksheet.Cells.MaxDataRow; + int horizontal = worksheet.Cells.MaxDataColumn; + + //변수 이름과 타입 삽입 + for (int n = 0; n <= horizontal; n++) { - // 프링 셀 값 - Console.Write(worksheet.Cells[i, j].Value + " | "); + // Console.Write(worksheet.Cells[i, j].Value + " | "); + variable.Add((string)worksheet.Cells[0, n].Value); + type.Add(((string)worksheet.Cells[2, n].Value).ToLower()); } - // 줄바꿈 인쇄 - Console.WriteLine(" "); + + for (int n = 3; n <= vertical; n++) + { + List dataList = new List(); + for (int m = 0; m <= horizontal; m++) + { + switch (type[m]) + { + case "enum": + case "int": + dataList.Add(worksheet.Cells[n, m].Value); + break; + case "string": + case "text": + case "time": + dataList.Add(worksheet.Cells[n, m].Value); + break; + default: + Console.WriteLine("알수없는 타입의 메세지 입니다."); + break; + } + } + dicViewer.Add(n, dataList); + } + sheet sheet = new sheet(worksheet.Name, variable, type, dicViewer); + _sheets.Add(sheet); } } + catch (Exception ex) + { + logger.Error(ex); + return false; + } + return true; } } diff --git a/Server/Git/XlsxToJson.cs b/Server/Git/XlsxToJson.cs index 96ccdb3..2d9a96f 100644 --- a/Server/Git/XlsxToJson.cs +++ b/Server/Git/XlsxToJson.cs @@ -10,10 +10,26 @@ //데이터 db에 업로드 //json화된 데이터 push - ExcelManager em = new ExcelManager(_repositoryPath, "TESTexl.xlsx"); - em.Play(); + ExcelManager em = new ExcelManager(repositoryPath, "TESTexl.xlsx"); + if (em.Play()) + { + List sheets = em.sheets; + + foreach (KeyValuePair> sheet in sheets[0].dicViewer) + { + foreach (object obj in sheet.Value) + { + //이것을 기반으로 서버 테이블을 생성뒤 데이터를 세팅 + //Console.WriteLine(obj); + } + } + } + else + { + Console.WriteLine("-1 : NotUpdate"); + } + - Console.WriteLine("집에가고싶다아"); //db에 데이터를올리는것은 이곳에 작성할 예정 diff --git a/Server/obj/Debug/net6.0/Server.dll b/Server/obj/Debug/net6.0/Server.dll index 0ede1f24258e75e11d5af2f1ccb4fbc84359f5bc..8d36b78a078e9d443998f953ea1af4337dec2f50 100644 GIT binary patch delta 6816 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 nlMGF17Ylptn(_-NntN)ey(Yc{(7*4 diff --git a/Server/obj/Debug/net6.0/Server.pdb b/Server/obj/Debug/net6.0/Server.pdb index c9d8f1984e3e6f892af3afdce82aadafbb97b5a6..a82e0cecf8301c4e98a827db13abe7e4fd9d032f 100644 GIT binary patch delta 1848 zcmZ`)Yiv|S6h3F}-TT@{cUz#PwsxDA77B%eph%?43MhHf9g;--t;mRbpJ zFQsK;LR2;;8v3Kb1dWLgD83R+2tlJI#Dqvtqp=ApniviKQN-6bvkMXuZ}xomeBYco zGjnF3ElIYNh4yC#2u7XR zQ4NP7V0>B!%ZJH9Z5YNN0n3BQ1UWG6x$i1x%1qMgV1+Q*SUp+FFLIr`RnR!>wXGWc zybb!zCqTVzk_2c#y#;;LCg>9E2iP^3(?0pF_)`nXaqE$|S|ui`OkXuhlGicH{ZJP{ zEkVR*SzZHP0sc;w-vizOF3Te0mxG^ye=W=J1)qZdMV7AszX1O%tbr`51((lDS-ui{ z8BvlNvqBw&4e(`Iny{Qz*$#4258T3k1K)rN+-R4}dhj;>&~1FzA+0 z!DD(~`4|iH?E?z>38<+9uB+8}=m->p&H+u5N6w;dpiQ3w9W|Iwp`R{83D6!OQ5?qV zG-xW)Lz|_X{?KaU>U637&3zq~L8+G0z&E!|1KZjrY=b@k+H@S~(5bd*D5(~5B!(5P zR+z4E!sgycUo_GgOV>L~^5dPmX>U(of3zzSqh0a7=#%l@{zxo6=#-n?(XL0LJ%i~N zoHGBOzIazpB0-5=Jw5&Db55bz9qErWM-%DG&a%mTZ-BR?RUF6$~E^&;Ietvwx(XIsW&= zsnEu2-#1@6?VBn*>MX<2cSkZT?|*gJ zHi-qq5@F?1vB0N;#ZXXIvJz)=rm*}{a2a=o=R>K`Egvm1urWnCzCE)H2Ok;_Vg{M! z>!@j^jl~5#bcQIS~7dGw$)&Kwi delta 1212 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 SLnVLO#@AEzpJHd_h<^d}c9Tp1 diff --git a/Server/obj/Debug/net6.0/refint/Server.dll b/Server/obj/Debug/net6.0/refint/Server.dll index 38070ca74ced4c650430ba3c7780a1ed675024a9..4730a471363dce0901105b9f6b8b4f9f61e9bb48 100644 GIT binary patch delta 2912 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 SLnVLO#@AEzpJHd_h<^d}c9Tp1