private void StartExcelExport() { ExcelInterface excelInterface = new ExcelInterface(); if (gridViewSymbols.SelectedRowsCount > 0) { int[] selrows = gridViewSymbols.GetSelectedRows(); if (selrows.Length > 0) { SymbolHelper sh = (SymbolHelper)gridViewSymbols.GetRow((int)selrows.GetValue(0)); //DataRowView dr = (DataRowView)gridViewSymbols.GetRow((int)selrows.GetValue(0)); //frmTableDetail tabdet = new frmTableDetail(); string Map_name = sh.Varname; if ((Map_name.StartsWith("2D") || Map_name.StartsWith("3D")) && sh.Userdescription != "") Map_name = sh.Userdescription; int columns = 8; int rows = 8; int tablewidth = GetTableMatrixWitdhByName(Tools.Instance.m_currentfile, Tools.Instance.m_symbols, Map_name, out columns, out rows); int address = (int)sh.Flash_start_address; if (address != 0) { int length = sh.Length; byte[] mapdata = Tools.Instance.readdatafromfile(Tools.Instance.m_currentfile, address, length, Tools.Instance.m_currentFileType); int[] xaxis = GetXaxisValues(Tools.Instance.m_currentfile, Tools.Instance.m_symbols, Map_name); int[] yaxis = GetYaxisValues(Tools.Instance.m_currentfile, Tools.Instance.m_symbols, Map_name); Map_name = Map_name.Replace(",", ""); Map_name = Map_name.Replace("[", ""); Map_name = Map_name.Replace("]", ""); excelInterface.ExportToExcel(Map_name, address, length, mapdata, columns, rows, true, xaxis, yaxis, m_appSettings.ShowTablesUpsideDown, sh.X_axis_descr, sh.Y_axis_descr, sh.Z_axis_descr); } } } else { frmInfoBox info = new frmInfoBox("No symbol selected in the primary symbol list"); } }
private void ImportExcelSymbol(string symbolname, string filename) { ExcelInterface excelInterface = new ExcelInterface(); bool issixteenbit = true; System.Data.DataTable dt = excelInterface.getDataFromXLS(filename); int symbollength = GetSymbolLength(Tools.Instance.m_symbols, symbolname); int datalength = symbollength; if (issixteenbit) datalength /= 2; int[] buffer = new int[datalength]; int bcount = 0; // for (int rtel = 1; rtel < dt.Rows.Count; rtel++) for (int rtel = dt.Rows.Count; rtel >= 1; rtel--) { try { int idx = 0; foreach (object o in dt.Rows[rtel].ItemArray) { if (idx > 0) { if (o != null) { if (o != DBNull.Value) { if (bcount < buffer.Length) { buffer.SetValue(Convert.ToInt32(o), bcount++); } else { frmInfoBox info = new frmInfoBox("Too much information in file, abort"); return; } } } } idx++; } } catch (Exception E) { Console.WriteLine("ImportExcelSymbol: " + E.Message); } } if (bcount >= datalength) { byte[] data = new byte[symbollength]; int cellcount = 0; if (issixteenbit) { for (int dcnt = 0; dcnt < buffer.Length; dcnt++) { string bstr1 = "0"; string bstr2 = "0"; int cellvalue = Convert.ToInt32(buffer.GetValue(dcnt)); string svalue = cellvalue.ToString("X4"); bstr1 = svalue.Substring(svalue.Length - 4, 2); bstr2 = svalue.Substring(svalue.Length - 2, 2); data.SetValue(Convert.ToByte(bstr1, 16), cellcount++); data.SetValue(Convert.ToByte(bstr2, 16), cellcount++); } } else { for (int dcnt = 0; dcnt < buffer.Length; dcnt++) { int cellvalue = Convert.ToInt32(buffer.GetValue(dcnt)); data.SetValue(Convert.ToByte(cellvalue.ToString()), cellcount++); } } Tools.Instance.savedatatobinary((int)GetSymbolAddress(Tools.Instance.m_symbols, symbolname), symbollength, data, Tools.Instance.m_currentfile, true, Tools.Instance.m_currentFileType); Tools.Instance.UpdateChecksum(Tools.Instance.m_currentfile, false); } }