public void StartProcessing(NonterminalExpression arg)//Arguments: 1)name database 2)name new table 3)-more is data for table { Regex ob1 = new Regex(@"[A-Z||a-z]{1}[a-z||0-9]{0,12}.[int||txt||date]"); string[] args = arg.NoTInfo; for (int i = 2; i < args.Length - 1; i++) { if (ob1.IsMatch(args[i])) { ; } else { Console.WriteLine("Incorrect syntax, try again or call the helpme command"); return; } } Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); //Подклюаем Excel Excel.Workbook xlWorkBook; FileInfo fi = new FileInfo("D:\\" + arg.NoTInfo[0] + ".xlsx"); //Проверяем есть ли файл с таким же названием, если да то выведит ошибку, т.к. БД уже сществует if (fi.Exists) { Console.WriteLine("File is open, processing..."); xlWorkBook = xlApp.Workbooks.Open(@"D:\" + arg.NoTInfo[0] + ".xlsx"); } else { Console.WriteLine("DataBase {0} is not, try more...", arg.NoTInfo[0]); ClearExcel.Clear_all(); return; } var xlSheets = xlWorkBook.Sheets as Excel.Sheets; var xlNewSheet = (Excel.Worksheet)xlSheets.Add(xlSheets[xlSheets.Count], Type.Missing, Type.Missing, Type.Missing);//Создаем новый лист // xlSheets[xlSheets.Count - 1].Visible = false; // string ValueForCells = ""; for (int i = 0; i < args.Length - 2; i++) { xlNewSheet.Cells[1, i + 1] = args[i + 2]; // xlNewSheet.Cells[1,i+1]=TableInfo[i]; } xlNewSheet.Name = Convert.ToString(arg.NoTInfo[1]);//указываем имя книги //xlNewSheet.Visible = true; //xlNewSheet.Range["A0"].TextToColumns("jhk"); xlWorkBook.ReadOnlyRecommended = false;//выключаем защиту документа xlWorkBook.Save(); xlWorkBook.Close(); xlApp.Quit(); ClearExcel.Clear_all(); Console.WriteLine("Making table is end"); Console.ReadKey(); }
static void Main(string[] args) { //работаем с аргументами в интерпретаторе var context = new Context(args); var list = new List <AbstractExpression>(); TerminalExpression ob1 = new TerminalExpression(); NonterminalExpression ob2 = new NonterminalExpression(); list.Add(ob1); list.Add(ob2); foreach (AbstractExpression exp in list) { exp.Interpret(context); }//terminal exp. have key for collection with objects commands //Nonterminal expression have arguments for processing data in this command FuncCreateDB createDB = new FuncCreateDB();//make object CreateTable createT = new CreateTable(); FuncSelect select = new FuncSelect(); Update Upd = new Update(); Dictionary <string, ICommand> ListCommand = new Dictionary <string, ICommand>();//make collection ListCommand.Add("helpme", new OutInfo()); ListCommand.Add("CreateDB", new FuncCreateDBCommand(createDB, ob2));//distribution him in collection and add key for him ListCommand.Add("CreateTable", new CreateTableCommand(createT, ob2)); ListCommand.Add("Select", new FuncSelectCommand(select, ob2)); ListCommand.Add("Update", new UpdateCommand(Upd, ob2)); Set set = new Set(); set.SetCommand(ListCommand[ob1.TerInfo]); set.Processing(); ClearExcel.Clear_all(); Console.ReadKey(); }
public void StartProcessing(NonterminalExpression arg) { Console.WriteLine("Start creating file for DB"); //действия для функции оздания базы данных Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();//Подклюаем Excel Excel.Workbook xlWorkBook; FileInfo fi = new FileInfo("D:\\" + arg.NoTInfo[0] + ".xlsx");//Проверяем есть ли файл с таким же названием, если да то выведит ошибку, т.к. БД уже сществует if (fi.Exists) { Console.WriteLine("The name is occupied by another database!Try more... Or take select function for change Table in DB"); return; } else { xlWorkBook = xlApp.Workbooks.Add(); Console.WriteLine("Database creation..."); } xlWorkBook.SaveAs(@"D:\" + arg.NoTInfo[0] + ".xlsx");//сохраняем файл как... ClearExcel.Clear_all(); }
public UpdateCommand(Update m, NonterminalExpression argmore) { Upd = m; argm = argmore; }
public void StartProcessing(NonterminalExpression arg) { string[] arguments = arg.NoTInfo; Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();//Подклюаем Excel Excel.Workbook xlWorkBook; //FileInfo fi = new FileInfo("D:\\" + arg.NoTInfo[0] + ".xlsx");//Проверяем есть ли файл с таким же названием, если да то выведит ошибку, т.к. БД уже сществует //if (fi.Exists) //{ // xlWorkBook = xlApp.Workbooks.Open(@"D:\" + arg.NoTInfo[0] + ".xlsx"); //} //else //{ // Console.WriteLine("File is not!"); // return; //} try { xlWorkBook = xlApp.Workbooks.Open(@"D:\" + arg.NoTInfo[0] + ".xlsx"); } catch (IOException e) { Console.WriteLine(e.Message); return; } var xlSheets = xlWorkBook.Sheets as Excel.Sheets; Excel.Worksheet ObjWorkSheet = (Excel.Worksheet)xlWorkBook.Sheets[Convert.ToString(arguments[1])]; //получить 1 лист var lastCell = ObjWorkSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell); //1 ячейку string[,] list = new string[lastCell.Column, lastCell.Row]; // массив значений с листа равен по размеру листу for (int i = 0; i < lastCell.Column; i++) //по всем колонкам { for (int j = 0; j < lastCell.Row; j++) // по всем строкам { list[i, j] = ObjWorkSheet.Cells[i + 1, j + 1].Text.ToString(); //считываем текст в строку } } string tempstr = ""; string TypeText = ""; int ii = lastCell.Row + 1, jj = 1; int check = 0; foreach (string k in arguments) { if (k == arguments[0] || k == arguments[1]) { continue; } try { if (jj > lastCell.Column) { Console.WriteLine("Error syntax"); return; } if (k.IndexOf("[") != -1) { TypeText = taketype(ObjWorkSheet.Cells[1, jj].Text.ToString()); Regex ob1 = new Regex(TypeText); tempstr = k.Remove(k.IndexOf("["), 1); if (ob1.IsMatch(tempstr)) { ObjWorkSheet.Cells[ii, jj] = tempstr; } else { Console.WriteLine("according't types..."); return; } jj++; } else if (k.IndexOf("]") != -1) { TypeText = taketype(ObjWorkSheet.Cells[1, jj].Text.ToString()); tempstr = k.Remove(k.IndexOf("]"), 1); Regex ob2 = new Regex(TypeText); if (ob2.IsMatch(tempstr)) { ObjWorkSheet.Cells[ii, jj] = tempstr; } else { Console.WriteLine("according't types..."); return; } ii++; jj = 1; } else { TypeText = taketype(ObjWorkSheet.Cells[1, jj].Text.ToString()); Regex ob3 = new Regex(TypeText); if (ob3.IsMatch(k)) { ObjWorkSheet.Cells[ii, jj] = k; } else { Console.WriteLine("according't types..."); return; } jj++; } } catch (Exception e) { Console.WriteLine(e.Message); } } xlWorkBook.Save(); }
public FuncCreateDBCommand(FuncCreateDB m, NonterminalExpression arg) { create = m; argOb = arg; }
public FuncSelectCommand(FuncSelect m, NonterminalExpression arg) { argOb = arg; select = m; }
public void StartProcessing(NonterminalExpression arg) { string[] arguments = arg.NoTInfo; Regex ob1 = new Regex(@"[A-Z||a-z]{1}[a-z||0-9]{0,12}"); string[] args = arg.NoTInfo; for (int i = 1; i < args.Length - 1; i++) { if (ob1.IsMatch(args[i])) { ; } else { Console.WriteLine("Incorrect syntax, try again or call the helpme command"); return; } } Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();//Подклюаем Excel Excel.Workbook xlWorkBook; FileInfo fi = new FileInfo("D:\\" + arg.NoTInfo[0] + ".xlsx");//Проверяем есть ли файл с таким же названием, если да то выведит ошибку, т.к. БД уже сществует if (fi.Exists) { xlWorkBook = xlApp.Workbooks.Open(@"D:\" + arg.NoTInfo[0] + ".xlsx"); } else { Console.WriteLine("File is not!"); return; } var xlSheets = xlWorkBook.Sheets as Excel.Sheets; if (arguments.Length == 2) { string[] result; result = new string[xlWorkBook.Sheets.Count]; try { var sheet = (Excel.Worksheet)xlWorkBook.Sheets["Лист1"];//delete default sheet sheet.Delete(); }catch (Exception e) { } try { for (int i = 0; i < xlWorkBook.Sheets.Count; i++) { Console.WriteLine((i + 1) + ". " + ((Excel.Worksheet)xlWorkBook.Sheets[i + 1]).Name);//out list of names tables xlWorkBook.Save(); // ClearExcel.Clear_all(); } } catch (Exception e) { } } else { if (arguments.Length == 3) { Console.WriteLine(Convert.ToString(arguments[1])); Excel.Worksheet ObjWorkSheet = (Excel.Worksheet)xlWorkBook.Sheets[Convert.ToString(arguments[1])]; //получить 1 лист var lastCell = ObjWorkSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell); //1 ячейку string[,] list = new string[lastCell.Column, lastCell.Row]; // массив значений с листа равен по размеру листу for (int i = 0; i < lastCell.Column; i++) //по всем колонкам { for (int j = 0; j < lastCell.Row; j++) // по всем строкам { list[i, j] = ObjWorkSheet.Cells[j + 1, i + 1].Text.ToString(); //считываем текст в строку } } for (int i = 0; i < lastCell.Row; i++) { for (int j = 0; j < lastCell.Column; j++) { if (list[j, i].IndexOf(".") != -1) { list[j, i] = list[j, i].Remove(list[j, i].IndexOf(".")); } Console.Write("{0,-10}|", list[j, i]); } Console.WriteLine(); } } } xlWorkBook.Close(false, Type.Missing, Type.Missing); //закрыть не сохраняя ClearExcel.Clear_all(); }
public CreateTableCommand(CreateTable m, NonterminalExpression argmore) { create = m; argm = argmore; }