Ejemplo n.º 1
0
    /// <summary>Call this method to get the sheet data</summary>
    /// <remarks>Convert the TextAsset from json file to class SheetInfo</remarks>
    /// <param name="textAsset">the json file you want to convert</param>
    public static SheetInfo GetSheet(TextAsset textAsset)
    {
        string    content = textAsset.text;
        SheetInfo sheet   = JsonUtility.FromJson <SheetInfo> (content);

        return(sheet);
    }
Ejemplo n.º 2
0
        public SheetInfo loadExcelData(string filePath)
        {
            //文件名为空
            if (string.IsNullOrEmpty(filePath))
            {
                throw new Exception("文件名为空");
            }
            string filename = System.IO.Path.GetFileName(filePath);

            string[] parts = filename.Split("-_.".ToCharArray());
            //格式定义:I,C,CX
            if (parts.Length != 4 || !new string[] { "I", "C", "CX" }.Contains(parts[2]))
            {
                throw new Exception("文件名格式错误");
            }
            SheetInfo  result     = new SheetInfo();
            ExcelTable exceltable = new ExcelTable();

            exceltable.CurrentFile = parts[0];
            exceltable.Signal      = parts[1];
            result.ExcelTableData  = exceltable;
            result.Tag             = parts[2].Equals("I");
            readExcelData(filePath, result, parts[2]);
            return(result);
        }
Ejemplo n.º 3
0
    //Parse sheet IDs from the HTML view.
    List <SheetInfo> GetSheetIDs(string URL, List <SheetInfo> sheetList)
    {
        string output = GetWebpage(URL);

        MatchCollection matches = Regex.Matches(output, ";gid=(?<sheetID>[0-9]+)\">(?<sheetTitle>[^<]+)</");

        foreach (Match mat in matches)
        {
            int    sheetID    = int.Parse(mat.Groups["sheetID"].Value);
            string sheetTitle = mat.Groups["sheetTitle"].Value;
            bool   present    = false;
            foreach (SheetInfo info in sheetList)
            {
                if (info.ID == sheetID)
                {
                    present = true;
                    break;
                }
            }
            if (!present)
            {
                SheetInfo inf = new SheetInfo();
                inf.ID    = sheetID;
                inf.title = sheetTitle;
                sheetList.Add(inf);
            }
        }

        return(sheetList);
    }
Ejemplo n.º 4
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="excelFile">The sheet to read.</param>
        /// <param name="settings">Processing settings.</param>
        internal ExcelFileReader(Stream excelFile, DataFileReaderSettings settings)
        {
            if (excelFile == null)
            {
                throw new ArgumentNullException("excelFile");
            }
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            _stream   = excelFile;
            _settings = settings;
            _document = SpreadsheetDocument.Open(_stream, false);
            _sheetId  = _settings.SheetId;

            if (_sheetId == null)
            {
                SheetInfo firstSheet = GetSheets( )?.FirstOrDefault( );
                if (firstSheet != null)
                {
                    _sheetId = firstSheet.SheetId;
                }
            }
        }
Ejemplo n.º 5
0
        private void GenerateColumns(DataGrid dataGrid, SheetInfo sheetInfo)
        {
            dataGrid.Columns.Clear();
            int i = 0;

            #region Dynamic Columns

            foreach (var m_Column in sheetInfo.Columns)
            {
                if (m_Column.Index > 0)
                {
                    string m_FieldName           = CustomEntity.GetPropertyName(i);
                    string m_BackgroundFieldName = CustomEntity.GetBackgroundFieldName(i);

                    //Use FColumn -> CellTemplate
                    DataGridTemplateColumn m_TemplateColumn = new DataGridTemplateColumn()
                    {
                        Header     = m_Column.Header,
                        IsReadOnly = false,
                    };
                    m_TemplateColumn.CellTemplate = GetDataTemplate(m_FieldName, m_BackgroundFieldName);

                    dataGrid.Columns.Add(m_TemplateColumn);
                    i++;
                }
            }

            #endregion
        }
        private void PrintRightBtn_Click(object sender, RoutedEventArgs e)
        {
            CollectionViewSource cvs = FindResource("ViewSource") as CollectionViewSource;

            if (cvs == null)
            {
                return;
            }
            if (cvs.View.CurrentItem == null)
            {
                return;
            }

            SheetInfo sheetInfo = cvs.View.CurrentItem as SheetInfo;

            string msg = "";

            if (PrintDeal.CreateInstance().PrintSheetRightSheet(sheetInfo, CurProcedureInfoList.ToList(), CurBOPInfoList.ToList(), ref msg))
            {
                MessageBox.Show("打印完成。");
            }
            else
            {
                if (!string.IsNullOrEmpty(msg))
                {
                    MessageBox.Show(msg);
                }
            }
        }
Ejemplo n.º 7
0
        public bool PrintDebitNote(SheetInfo sheetInfo, List <SheetBOPInfo> sheetBOPList, ref string msg)
        {
            if (sheetInfo == null)
            {
                return(false);
            }

            try
            {
                if (!xlsAccess.LoadXlsTemplate(ResourceMap.AppFolderPathHashtable[AppFolderPath.Templates] as string + ResourceMap.TemplatesNameHashtable[TemplatesName.DebitNote] as string))
                {
                    return(false);
                }

                if (xlsAccess.GetSheet((ResourceMap.TemplatesNameHashtable[TemplatesName.DebitNote] as string).Split('.')[0]))
                {
                    xlsAccess.SetCellValue(2, 0, "TO:" + (sheetInfo.Customer == null ? "" : sheetInfo.Customer));
                    xlsAccess.SetCellValue(2, 3, "DATE:" + DateTime.Now.ToString("yyyy-MM-dd"));
                    xlsAccess.SetCellValue(4, 0, sheetInfo.BSType == null ? "" : sheetInfo.BSType);
                    xlsAccess.SetCellValue(4, 1, "RMB");
                    xlsAccess.SetCellValue(4, 2, sheetInfo.Price);

                    if (sheetBOPList.Count > 0)
                    {
                        List <SheetBOPInfo> tempList = sheetBOPList.Where(info => info.CanRecycle == true).ToList();
                        if (tempList.Count > 0)
                        {
                            xlsAccess.CopyRow(5, 4, tempList.Count);
                            for (int index = 0; index < tempList.Count; index++)
                            {
                                xlsAccess.SetCellValue(index + 5, 0, tempList[index].BOPReason);
                                xlsAccess.SetCellValue(index + 5, 1, "RMB");
                                xlsAccess.SetCellValue(index + 5, 2, tempList[index].Payment);
                            }
                            xlsAccess.SetCellFormula(5 + tempList.Count, 2, "sum(C5:C" + (5 + tempList.Count) + ")");
                        }
                        else
                        {
                            xlsAccess.SetCellValue(5, 2, sheetInfo.Price);
                        }
                    }
                    else
                    {
                        xlsAccess.SetCellValue(5, 2, sheetInfo.Price);
                    }

                    return(SaveWithDialog());
                    //xlsAccess.SaveAs(ResourceMap.AppFolderPathHashtable[AppFolderPath.Outputs] as string + sheetInfo.Customer + "_DebitNote.xls");
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                msg = ex.Message + ex.StackTrace.ToString();
                return(false);
            }
        }
        private void DeleteBtn_Click(object sender, RoutedEventArgs e)
        {
            if (SheetDataGrid.SelectedItem == null)
            {
                return;
            }

            MessageBoxResult mr = MessageBox.Show("删除该订单后不可恢复,确认删除?", "删除订单", MessageBoxButton.OKCancel, MessageBoxImage.Question);

            if (mr == MessageBoxResult.OK)
            {
                FuncPasswordWindow funcPDWindows = new FuncPasswordWindow(dataManager.CurUserName);
                funcPDWindows.Owner = App.Current.MainWindow;
                if (funcPDWindows.ShowDialog() == true)
                {
                    SheetInfo info = SheetDataGrid.SelectedItem as SheetInfo;
                    if (SheetDeal.DeleteSheetInfo(info.ID))
                    {
                        int index = dataManager.AllSheetList.ToList().FindIndex(sheet => sheet.ID == info.ID);
                        if (index > -1)
                        {
                            dataManager.AllSheetList.RemoveAt(index);
                        }
                    }
                }
            }
        }
Ejemplo n.º 9
0
    List <SheetInfo> GetSpreadSheetIDs(string gDocsUrl)
    {
        System.Text.RegularExpressions.Match match = Regex.Match(gDocsUrl, @"(/d/)(.+)/");
        string gDocskey = match.Groups[2].Value;

        string URL = "https://spreadsheets.google.com/spreadsheet/pub?key=" + gDocskey;

        List <SheetInfo> res = new List <SheetInfo>();

        res = GetSheetIDs(URL, res);

        //Also fetch the ID of the default sheet.
        if (res.Count > 0)
        {
            GetSheetIDs(URL + "&gid=" + res[0].ID, res);
        }

        if (res.Count == 0)
        {
            Debug.LogWarning("No sheets found, or your spreadsheet has only 1 sheet. We are assuming that the first sheet has ID '0'. (You can fix this by simply adding a second sheet as this will allow ID lookup via HTML output)");
            SheetInfo info = new SheetInfo();
            info.ID    = 0;
            info.title = "Sheet1";
            res.Add(info);
        }
        return(res);
    }
Ejemplo n.º 10
0
    //Parse sheet IDs from the HTML view.
    List <SheetInfo> GetSheetIDs(string URL, List <SheetInfo> sheetList)
    {
        string output = GetWebpage(URL);

        string          pattern = @"switchToSheet..([0-9]+)....\s?>(.[^<]+)<";
        MatchCollection matches = Regex.Matches(output, pattern);

        foreach (System.Text.RegularExpressions.Match mat in matches)
        {
            int    sheetID    = int.Parse(mat.Groups[1].Value);
            string sheetTitle = mat.Groups[2].Value;
            bool   present    = false;
            foreach (SheetInfo info in sheetList)
            {
                if (info.ID == sheetID)
                {
                    present = true;
                    break;
                }
            }
            if (!present)
            {
                SheetInfo inf = new SheetInfo();
                inf.ID    = sheetID;
                inf.title = sheetTitle;
                sheetList.Add(inf);
            }
        }

        return(sheetList);
    }
Ejemplo n.º 11
0
        /// <summary>
        /// 插入EntityInfo数据
        /// </summary>
        /// <param name="sheetInfo"></param>
        /// <param name="KeyMap"></param>
        /// <param name="command"></param>
        private void InsertInfoTable(SheetInfo sheetInfo, Dictionary <string, int> KeyMap, MySqlTransaction tran, string timeStamp)
        {
            if (sheetInfo.InfoRows == null || sheetInfo.InfoRows.Count == 0)
            {
                throw new Exception("无效的数据");
            }
            List <InfoEntityData> rows = sheetInfo.InfoRows;
            string signal = sheetInfo.ExcelTableData.Signal;

            foreach (InfoEntityData one in rows)
            {
                string sql = string.Format("insert into EntityTable(ExcelSignal,EntityName,Version) values ('{0}','{1}','{2}')", signal, one.EntityName, timeStamp);
                //插入Entity
                new MySqlCommand(sql, tran.Connection, tran).ExecuteNonQuery();
                CEntityName entity = selectEntity(one.EntityName, tran.Connection);
                Dictionary <string, string> data = one.Data;
                StringBuilder buider             = null;
                if (data != null && data.Count != 0)
                {
                    buider = new StringBuilder("insert into InfoTable(Key_ID,Entity_ID,Value,Version) values");
                }
                foreach (string s in data.Keys)
                {
                    buider.AppendFormat(" ({0},{1},'{2}','{3}'),", KeyMap[s], entity.Id, data[s], timeStamp);
                }
                buider.Remove(buider.Length - 1, 1);
                new MySqlCommand(buider.ToString(), tran.Connection, tran).ExecuteNonQuery();
            }
        }
Ejemplo n.º 12
0
        internal async Task <Election> GetElection(SheetInfo settingsSheet, SheetInfo votersSheet, List <SheetInfo> raceSheets, string timezone)
        {
            var ranges = new List <string>();

            ranges.Add($"{settingsSheet.Title}!A:B");
            ranges.Add($"{votersSheet.Title}!A:A");
            foreach (var race in raceSheets)
            {
                ranges.Add($"{race.Title}!1:1");
            }
            var request = _service.Spreadsheets.Values.BatchGet(_spreadsheetId);

            request.Ranges = new Repeatable <string>(ranges);
            var response = await request.ExecuteAsync().ConfigureAwait(false);

            var sheets   = response.ValueRanges.ToArray();
            var election = new Election
            {
                Settings         = ParseSettings(sheets[0], timezone),
                AuthorizedVoters = ParseVoters(sheets[1]),
                Races            = ParseRaces(raceSheets, sheets.Slice(2))
            };

            return(election);
        }
Ejemplo n.º 13
0
            internal IEnumerator OpenSheetTask(Asset.SubTaskHandle sth)
            {
                var signal = sth.Signal;

                if (CancellableSignal.IsCancelled(signal))
                {
                    yield break;
                }

                var sheetInfos = new SheetInfo[]
                {
                    //this.CreateSheetInfo<long, GameConfigData   >(this.OnOpenSheets_GameConfigData      ),
                    //this.CreateSheetInfo<long, RegionData       >(this.OnOpenSheets_RegionData          ),
                    //this.CreateSheetInfo<long, ComposerData     >(this.OnOpenSheets_ComposerData        ),
                    //this.CreateSheetInfo<long, MusicData        >(this.OnOpenSheets_MusicData           ),
                    //this.CreateSheetInfo<long, BgmData          >(this.OnOpenSheets_BgmData             ),
                    //this.CreateSheetInfo<long, MatineeData      >(this.OnOpenSheets_MatineeData         ),
                    //this.CreateSheetInfo<long, StarData         >(this.OnOpenSheets_StarData            ),
                    //this.CreateSheetInfo<long, JudgementData    >(this.OnOpenSheets_JudgementData       ),
                    //this.CreateSheetInfo<long, Concours4KeyData >(this.OnOpenSheets_Concours4KeyData    ),
                    //this.CreateSheetInfo<long, Concours6KeyData >(this.OnOpenSheets_Concours6KeyData    ),
                    //this.CreateSheetInfo<long, PianoData        >(this.OnOpenSheets_PianoData           ),
                    this.CreateSheetInfo <long, UnitData>(this.OnOpenSheets_UnitData),
                };

                var progressStride     = 1f / sheetInfos.Length;
                var progressStrideHalf = progressStride * 0.5f;
                var progress           = 0f;

                for (int n = 0, cnt = sheetInfos.Length; n < cnt; ++n)
                {
                    var si     = sheetInfos[n];
                    var source = Resources.Load <TextAsset>(string.Format("Data/{0}", si.sheetname));
                    if (!source)
                    {
                        Debug.LogError(string.Format("SERVICEMODEL:SHEET_NOT_FOUND_ERROR:{0}", si.sheetname));
                    }
                    sth.SetProgress(progress + progressStrideHalf);
                    yield return(null);

                    if (CancellableSignal.IsCancelled(signal))
                    {
                        yield break;
                    }

                    si.parseFunc(si, source);
                    sth.SetProgress(progress += progressStride);
                    yield return(null);

                    if (CancellableSignal.IsCancelled(signal))
                    {
                        yield break;
                    }
                }

                sth.Complete();
            }
Ejemplo n.º 14
0
            SheetInfo CreateSheetInfo <K, V>(BuildFunc buildFunc, ParseFunc parseFunc = null) where V : AssetData <K>
            {
                var si = new SheetInfo();

                si.sheetname = typeof(V).Name;
                si.buildFunc = buildFunc;
                si.parseFunc = null != parseFunc ? parseFunc : this.ParseFromCsv <K, V>;
                return(si);
            }
Ejemplo n.º 15
0
        private IList <CustomEntity> ReadData(string fileName, SheetInfo sheetInfo)
        {
            IList <CustomEntity> m_CustomEntities    = new List <CustomEntity>();
            ExcelReaderWriter    m_ExcelReaderWriter = new ExcelReaderWriter(fileName, sheetInfo.Index);

            try
            {
                m_ExcelReaderWriter.OpenWorkbook();
                object[,] m_Values = (object[, ])m_ExcelReaderWriter.ActiveWorksheet.UsedRange.Value2;
                if (m_Values != null)
                {
                    if (sheetInfo.BeginRowIndex == 0)
                    {
                        sheetInfo.BeginRowIndex = 0;
                    }
                    if (sheetInfo.EndRowIndex == 0)
                    {
                        sheetInfo.EndRowIndex = (int)m_Values.GetLongLength(0);
                    }

                    if (m_Values != null)
                    {
                        for (int m_RowIndex = sheetInfo.BeginRowIndex; m_RowIndex <= sheetInfo.EndRowIndex; m_RowIndex++)
                        {
                            CustomEntity m_CustomEntity = new CustomEntity();

                            //Dynamic value excel
                            foreach (var m_ColumnInfo in sheetInfo.Columns)
                            {
                                if (m_ColumnInfo.Index != 0)
                                {
                                    //Range a = (Range)m_ExcelReaderWriter.ActiveWorksheet.UsedRange[m_RowIndex, m_ColumnInfo.Index];
                                    //var x = a.Text;
                                    var    x             = m_Values[m_RowIndex, m_ColumnInfo.Index];
                                    string m_ValueString = string.Format("{0}", x);// m_Values[m_RowIndex, m_ColumnInfo.Index]);
                                    m_CustomEntity.Properties.Add(m_ValueString);
                                }
                            }

                            m_CustomEntities.Add(m_CustomEntity);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            finally
            {
                m_ExcelReaderWriter.CloseWorkbook();
            }

            return(m_CustomEntities);
        }
        private void OperationTypeList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (OperationTypeList.SelectedItem == null)
            {
                return;
            }

            switch ((OperationType)(((DictionaryEntry)(OperationTypeList.SelectedValue)).Key))
            {
            case OperationType.Scan:
                if (SheetDataGrid.SelectedValue != null)
                {
                    SheetDetailGrid.SetBinding(Grid.DataContextProperty, new Binding("SelectedValue")
                    {
                        Source = SheetDataGrid
                    });
                }
                UpdateProcefureInfo();
                break;

            case OperationType.Edit:
                sheetInfoForEdit            = AlgorithmClass.DeepClone <SheetInfo>(SheetDataGrid.SelectedItem as SheetInfo);
                SheetDetailGrid.DataContext = sheetInfoForEdit;

                procedureInfoListForEdit      = AlgorithmClass.DeepClone <ObservableCollection <ProcedureInfo> >(CurProcedureInfoList);
                ProcedureDataGrid.ItemsSource = procedureInfoListForEdit;

                bopInfoListForEdit      = AlgorithmClass.DeepClone <ObservableCollection <SheetBOPInfo> >(CurBOPInfoList);
                BOPDataGrid.ItemsSource = bopInfoListForEdit;

                if (procedureInfoListForEdit.Count == CurSelectionProcedureInfoList.Count)
                {
                    AddRowBtn.IsEnabled = false;
                }
                else
                {
                    AddRowBtn.IsEnabled = true;
                }
                break;

            case OperationType.New:
                BSTypeTextBlock.Text        = "";
                sheetInfoForNew             = new SheetInfo();
                SheetDetailGrid.DataContext = sheetInfoForNew;

                procedureInfoListForNew       = new ObservableCollection <ProcedureInfo>();
                ProcedureDataGrid.ItemsSource = procedureInfoListForNew;
                AddRowBtn.IsEnabled           = true;

                bopInfoListForNew       = new ObservableCollection <SheetBOPInfo>();
                BOPDataGrid.ItemsSource = bopInfoListForNew;
                break;
            }
        }
Ejemplo n.º 17
0
        public async Task <ActionResult> GetListJsonStudentCode(string StudentCode)
        {
            DetailsListParam detailsListParam = new DetailsListParam();

            OperatorInfo operatorInfo = await Operator.Instance.Current();

            if (!operatorInfo.RoleIds.Contains(GlobalContext.SystemConfig.RoleId))//不是超级管理员
            {
                detailsListParam.SysDepartmentId = operatorInfo.DepartmentId;
            }
            detailsListParam.StudentCode = StudentCode;
            TData <List <DetailsEntity> > details = await detailsBLL.GetList(detailsListParam);

            if (details.Tag == 1 && details.Result.Any())
            {
                var infos = new List <SheetInfo>();
                var ids   = details.Result.Select(x => x.ChargeSheetId).Distinct().ToList();
                foreach (var id in ids)
                {
                    TData <SheetEntity> obj = await sheetBLL.GetEntity(long.Parse(id.ToString()));

                    if (obj.Tag == 1 && obj.Result != null)
                    {
                        SheetInfo info = obj.Result.MapTo <SheetEntity, SheetInfo>();
                        var       mxs  = details.Result.Where(x => x.ChargeSheetId == id).ToList();
                        info.details  = mxs;
                        info.SumMoney = mxs.Sum(x => x.Money);
                        info.YesMoney = 0;

                        //收款记录
                        RecordListParam recordListParam = new RecordListParam();
                        if (!operatorInfo.RoleIds.Contains(GlobalContext.SystemConfig.RoleId))//不是超级管理员
                        {
                            recordListParam.SysDepartmentId = operatorInfo.DepartmentId;
                        }
                        recordListParam.StudentCode   = StudentCode;
                        recordListParam.ChargeSheetId = id;
                        recordListParam.Status        = 1;
                        TData <List <RecordEntity> > record = await recordBLL.GetList(recordListParam);

                        if (record.Tag == 1 && record.Result != null)
                        {
                            info.YesMoney = record.Result.Sum(x => x.Money);
                        }

                        info.NoMoney = info.SumMoney - info.YesMoney;
                        infos.Add(info);
                    }
                }
                return(Json(infos));
            }

            return(Json(new List <SheetInfo>()));
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Get WorkSheet By Sheet Info
        /// </summary>
        /// <param name="excelPackage"></param>
        /// <param name="sheetInfo"></param>
        /// <returns></returns>
        public ExcelWorksheet GetWorkSheet(ExcelPackage excelPackage, SheetInfo sheetInfo)
        {
            ExcelWorksheet excelWorksheet = null;

            if (sheetInfo != null)
            {
                excelWorksheet = sheetInfo.SheetIndex > 0 ? excelPackage.Workbook.Worksheets[sheetInfo.SheetIndex] : excelPackage.Workbook.Worksheets[sheetInfo.SheetName];
            }

            return(excelWorksheet);
        }
 private bool CheckSheetIsValid(SheetInfo sheetInfo)
 {
     if (string.IsNullOrEmpty(sheetInfo.Accepter) || string.IsNullOrEmpty(sheetInfo.BSType) || string.IsNullOrEmpty(sheetInfo.Contacter) ||
         string.IsNullOrEmpty(sheetInfo.Customer) || string.IsNullOrEmpty(sheetInfo.PhoneNumber) || sheetInfo.StartDate == null)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
Ejemplo n.º 20
0
 void SetUIAndGetSheet(string sheetName)
 {
     data          = SourceLoader.GetSheetData(sheetName);
     sheet         = SourceLoader.GetSheet(data.SheetInfo);
     aFx.clip      = data.Music;
     cover.texture = data.Cover;
     queueNotes    = new Queue <NoteInfo> (sheet.Notes);
     for (int i = 0; i < noteObjectPool.Capacity; i++)
     {
         SetNote( );
     }
 }
Ejemplo n.º 21
0
    public void ClassGetSheet()
    {
        var    excel = Excel;
        ISheet sheet = excel.GetSheetAt(2);

        Assert.AreEqual(5, SheetInfo.GetColumnCount(sheet));
        Assert.AreEqual(11, SheetInfo.GetRowCount(sheet));

        SheetInfo.TryGetSheetInfo(sheet, opt, out SheetInfo sheetInfo);
        var x = ClassSheet.GetOrNull(sheetInfo);

        Assert.AreEqual(4, x.Contents.Length);
    }
Ejemplo n.º 22
0
    public void ConstGetSheet()
    {
        var    excel = Excel;
        ISheet sheet = excel.GetSheetAt(1);

        Assert.AreEqual(6, SheetInfo.GetColumnCount(sheet));
        Assert.AreEqual(9, SheetInfo.GetRowCount(sheet));

        SheetInfo.TryGetSheetInfo(sheet, opt, out SheetInfo sheetInfo);
        var x = ConstSheet.GetOrNull(sheetInfo);

        Assert.AreEqual(6, x.Contents.Length);
    }
Ejemplo n.º 23
0
    List <SheetInfo> GetSpreadSheetIDs(string gDocsUrl)
    {
        List <SheetInfo> res = new List <SheetInfo>();

        if (!gDocsUrl.Contains("output="))
        {
            //2014 format
            string output = GetWebpage(gDocsUrl);


            var document = new HtmlAgilityPack.HtmlDocument();
            document.LoadHtml(output);

            List <string> titles = GetSheetTitles(document);

            int i = 0;
            foreach (string titl in titles)
            {
                SheetInfo inf = new SheetInfo();
                inf.ID    = i;
                inf.title = titl;
                res.Add(inf);
                i++;
            }
        }
        else
        {
            //2013 format
            Match  match    = Regex.Match(gDocsUrl, "key=(?<gDocsKey>[^&#]+)");
            string gDocskey = match.Groups["gDocsKey"].Value;
            string URL      = "https://spreadsheets.google.com/spreadsheet/pub?key=" + gDocskey;
            res = GetSheetIDs(URL, res);

            //Also fetch the ID of the default sheet.
            if (res.Count > 0)
            {
                GetSheetIDs(URL + "&gid=" + res[0].ID, res);
            }
        }

        if (res.Count == 0)
        {
            Debug.LogWarning("No sheets found, or your spreadsheet has only 1 sheet. We are assuming that the first sheet has ID '0'. (You can fix this by simply adding a second sheet as this will allow ID lookup via HTML output)");
            SheetInfo info = new SheetInfo();
            info.ID    = 0;
            info.title = "Sheet1";
            res.Add(info);
        }
        return(res);
    }
Ejemplo n.º 24
0
        private static List <SheetInfo> GetSheetInfos(ExcelWorksheets excelWorksheets)
        {
            var sheetInfos = new List <SheetInfo>();

            foreach (var excelWorksheet in excelWorksheets)
            {
                var sheetInfo = new SheetInfo();
                sheetInfo.SheetName = excelWorksheet.Name;
                sheetInfo.RowCount  = excelWorksheet.Dimension?.End.Row ?? 0;
                sheetInfo.ColCount  = excelWorksheet.Dimension?.End.Column ?? 0;
                sheetInfos.Add(sheetInfo);
            }
            return(sheetInfos);
        }
Ejemplo n.º 25
0
 /// <summary>
 /// 插入一个SheetInfo,只插入以前表中不存在的数据
 /// </summary>
 /// <param name="sheetInfo"></param>
 /// <returns></returns>
 public void InsertSheetInfo(SheetInfo sheetInfo)
 {
     if (sheetInfo == null)
     {
         throw new Exception("无效的插入数据");
     }
     if (sheetInfo.Tag)
     {
         InsertInfoData(sheetInfo);
     }
     else
     {
         InsertDrawData(sheetInfo);
     }
 }
Ejemplo n.º 26
0
            //GameConfigData OnOpenSheets_GameConfigData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new GameConfigData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    ++counter;// NOTE: Comment
            //    assetModel.integerValue = this.ParseNullable(row[counter++], int.Parse);
            //    assetModel.dobuleValue = this.ParseNullable(row[counter++], double.Parse);
            //    assetModel.stringValue = row[counter++];
            //    if ("" == assetModel.stringValue)
            //        assetModel.stringValue = null;
            //    return assetModel;
            //}

            //RegionData OnOpenSheets_RegionData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new RegionData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.name = row[counter++];
            //    return assetModel;
            //}

            //ComposerData OnOpenSheets_ComposerData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new ComposerData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.name = row[counter++];
            //    assetModel.era = short.Parse(row[counter++]);
            //    assetModel.order = short.Parse(row[counter++]);
            //    assetModel.saveSlot = byte.Parse(row[counter++]);
            //    return assetModel;
            //}

            //MusicData OnOpenSheets_MusicData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new MusicData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.title = row[counter++];
            //    assetModel.composer = long.Parse(row[counter++]);

            //    assetModel.diff4k1 = byte.Parse(row[counter++]);
            //    assetModel.diff4k2 = byte.Parse(row[counter++]);
            //    assetModel.diff4k3 = byte.Parse(row[counter++]);

            //    assetModel.diff6k1 = byte.Parse(row[counter++]);
            //    assetModel.diff6k2 = byte.Parse(row[counter++]);
            //    assetModel.diff6k3 = byte.Parse(row[counter++]);

            //    assetModel.diff2p1 = byte.Parse(row[counter++]);
            //    assetModel.diff2p2 = byte.Parse(row[counter++]);
            //    assetModel.diff2p3 = byte.Parse(row[counter++]);

            //    assetModel.ensembleOrder = int.Parse(row[counter++]);

            //    assetModel.hidden = "1" == row[counter++];
            //    return assetModel;
            //}

            //BgmData OnOpenSheets_BgmData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new BgmData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.bgmStart = float.Parse(row[counter++]);
            //    assetModel.bgmEnd = float.Parse(row[counter++]);
            //    assetModel.bgmFI = float.Parse(row[counter++]);
            //    assetModel.bgmFO = float.Parse(row[counter++]);
            //    assetModel.bgmNextTerm = float.Parse(row[counter++]);

            //    assetModel.previewStart = float.Parse(row[counter++]);
            //    assetModel.previewEnd = float.Parse(row[counter++]);
            //    assetModel.previewFI = float.Parse(row[counter++]);
            //    assetModel.previewFO = float.Parse(row[counter++]);
            //    assetModel.previewNextTerm = float.Parse(row[counter++]);

            //    assetModel.outgame = "1" == row[counter++];
            //    return assetModel;
            //}

            //MatineeData OnOpenSheets_MatineeData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new MatineeData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.stage4k1 = short.Parse(row[counter++]);
            //    assetModel.order4k1 = short.Parse(row[counter++]);
            //    assetModel.stage4k2 = short.Parse(row[counter++]);
            //    assetModel.order4k2 = short.Parse(row[counter++]);
            //    assetModel.stage4k3 = short.Parse(row[counter++]);
            //    assetModel.order4k3 = short.Parse(row[counter++]);

            //    assetModel.stage6k1 = short.Parse(row[counter++]);
            //    assetModel.order6k1 = short.Parse(row[counter++]);
            //    assetModel.stage6k2 = short.Parse(row[counter++]);
            //    assetModel.order6k2 = short.Parse(row[counter++]);
            //    assetModel.stage6k3 = short.Parse(row[counter++]);
            //    assetModel.order6k3 = short.Parse(row[counter++]);
            //    return assetModel;
            //}

            //StarData OnOpenSheets_StarData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new StarData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.class1 = double.Parse(row[counter++]);
            //    assetModel.class2 = double.Parse(row[counter++]);
            //    assetModel.class3 = double.Parse(row[counter++]);
            //    return assetModel;
            //}

            //JudgementData OnOpenSheets_JudgementData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new JudgementData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.tier = (JudgementType)int.Parse(row[counter++]);
            //    assetModel.groupKey = row[counter++];

            //    assetModel.ratio = double.Parse(row[counter++]);

            //    assetModel.life = double.Parse(row[counter++]);

            //    assetModel.score = int.Parse(row[counter++]);
            //    assetModel.difficultBonus = int.Parse(row[counter++]);

            //    assetModel.noteF = double.Parse(row[counter++]);
            //    assetModel.noteR = double.Parse(row[counter++]);

            //    assetModel.longF = double.Parse(row[counter++]);
            //    assetModel.longR = double.Parse(row[counter++]);
            //    return assetModel;
            //}

            //int OnOpenSheets_ConcoursData(CsvRow row, ConcoursData assetModel, int counter)
            //{
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.name = row[counter++];

            //    assetModel.music1 = long.Parse(row[counter++]);
            //    assetModel.difficultType1 = (DifficultType)int.Parse(row[counter++]);
            //    assetModel.hidden1 = "1" == row[counter++];

            //    assetModel.music2 = long.Parse(row[counter++]);
            //    assetModel.difficultType2 = (DifficultType)int.Parse(row[counter++]);
            //    assetModel.hidden2 = "1" == row[counter++];

            //    assetModel.music3 = long.Parse(row[counter++]);
            //    assetModel.difficultType3 = (DifficultType)int.Parse(row[counter++]);
            //    assetModel.hidden3 = "1" == row[counter++];

            //    assetModel.music4 = long.Parse(row[counter++]);
            //    assetModel.difficultType4 = (DifficultType)int.Parse(row[counter++]);
            //    assetModel.hidden4 = "1" == row[counter++];

            //    assetModel.judgeGroupKey = row[counter++];

            //    assetModel.missionActive = (ActiveMissionType)int.Parse(row[counter++]);
            //    assetModel.missionValue = uint.Parse(row[counter++]);

            //    assetModel.missionMiss = byte.Parse(row[counter++]);

            //    assetModel.missionSpeed = byte.Parse(row[counter++]);
            //    assetModel.missionFade = (NoteVisibleType)int.Parse(row[counter++]);
            //    assetModel.missionSequence = (SequenceType)int.Parse(row[counter++]);

            //    {
            //        var valueL = 0L;
            //        if (long.TryParse(row[counter++], out valueL))
            //            assetModel.rewardPiano = valueL;
            //        else
            //            assetModel.rewardPiano = null;
            //    }

            //    {
            //        var valueL = 0L;
            //        if (long.TryParse(row[counter++], out valueL))
            //            assetModel.rewardMusic = valueL;
            //        else
            //            assetModel.rewardMusic = null;
            //    }
            //    return counter;
            //}

            //Concours4KeyData OnOpenSheets_Concours4KeyData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new Concours4KeyData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_ConcoursData(row, assetModel, counter);
            //    return assetModel;
            //}

            //Concours6KeyData OnOpenSheets_Concours6KeyData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new Concours6KeyData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_ConcoursData(row, assetModel, counter);
            //    return assetModel;
            //}

            //PianoData OnOpenSheets_PianoData(SheetInfo si, object data)
            //{
            //    var row = (CsvRow)data;
            //    var assetModel = new PianoData();
            //    var counter = 0;
            //    counter = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
            //    assetModel.name = row[counter++];
            //    assetModel.keyColorCode = row[counter++];
            //    assetModel.access = int.Parse(row[counter++]);
            //    assetModel.order = int.Parse(row[counter++]);
            //    return assetModel;
            //}
            UnitData OnOpenSheets_UnitData(SheetInfo si, object data)
            {
                var row        = (CsvRow)data;
                var assetModel = new UnitData();
                var counter    = 0;

                counter                   = this.OnOpenSheets_IAssetable(row, assetModel, long.Parse, counter);
                assetModel.name           = row[counter++];
                assetModel.hp             = long.Parse(row[counter++]);
                assetModel.damage         = long.Parse(row[counter++]);
                assetModel.moveSpeed      = long.Parse(row[counter++]);
                assetModel.range          = long.Parse(row[counter++]);
                assetModel.attackSpeed    = float.Parse(row[counter++]);
                assetModel.knockbackPower = long.Parse(row[counter++]);
                return(assetModel);
            }
Ejemplo n.º 27
0
        /// <summary>
        /// 更新Sheet信息
        /// </summary>
        public static int UpdateSheetInfo(SheetInfo sheetInfo)
        {
            ISqlMapper mapper = GetSqlMapper.GetMapper();
            int        result = 0;

            try
            {
                mapper.BeginTransaction();
                result = mapper.Update("UpdateSheetInfo", sheetInfo);
                mapper.CommitTransaction();
            }
            catch (Exception ex)
            {
                applog.InfoFormat("Access.UpdateSheetInfo() Error:{0}", ex.Message);
                mapper.RollBackTransaction();
            }

            return(result);
        }
Ejemplo n.º 28
0
        /// <summary>
        /// 插入Sheet信息
        /// </summary>
        /// <returns>最新插入插入的ID</returns>
        public static int InsertSheet(SheetInfo sheetInfo)
        {
            ISqlMapper mapper = GetSqlMapper.GetMapper();
            int        id     = 0;

            try
            {
                mapper.BeginTransaction();
                id = (int)(mapper.Insert("InsertSheet", sheetInfo));
                mapper.CommitTransaction();
            }
            catch (Exception ex)
            {
                applog.InfoFormat("Access.InsertSheet() Error:{0}", ex.Message);
                mapper.RollBackTransaction();
            }

            return(id);
        }
Ejemplo n.º 29
0
        /// <summary>
        /// 插入DrawDataTable
        /// </summary>
        /// <param name="sheetInfo"></param>
        /// <param name="command"></param>
        private void InsertDrawDataTable(SheetInfo sheetInfo, MySqlTransaction tran, string timeStamp)
        {
            List <DrawEntityData> rows = sheetInfo.DrawRows;
            string signal = sheetInfo.ExcelTableData.Signal;

            foreach (DrawEntityData one in rows)
            {
                CEntityName entity  = selectEntity(one.EntityName, tran.Connection);
                DateTime?   maxDate = null;
                if (entity == null)
                {
                    string sql = string.Format("insert into EntityTable(ExcelSignal,EntityName,Version) values ('{0}','{1}','{2}')", signal, one.EntityName, timeStamp);
                    //插入Entity
                    new MySqlCommand(sql, tran.Connection, tran).ExecuteNonQuery();
                    entity = selectEntity(one.EntityName, tran.Connection);
                }
                else
                {
                    string sql = string.Format("select Max(Date) from DrawTable where Entity_ID={0}", entity.Id);
                    maxDate = Convert.ToDateTime(new MySqlCommand(sql, tran.Connection).ExecuteScalar());
                }
                List <DrawData> data   = one.Data;
                StringBuilder   buider = null;
                if (data != null && data.Count != 0)
                {
                    buider = new StringBuilder("insert into DrawTable(Entity_ID,Date,EntityMaxValue,EntityMidValue,EntityMinValue,Detail,Version) values");
                }
                bool hasValue = false;
                foreach (DrawData p in data)
                {
                    if (maxDate == null || p.Date > maxDate)
                    {
                        hasValue = true;
                        buider.AppendFormat(" ({0},'{1}','{2}','{3}','{4}','{5}','{6}'),", entity.Id, p.Date, p.MaxValue, p.MidValue, p.MinValue, p.Detail, timeStamp);
                    }
                }
                if (hasValue)
                {
                    buider.Remove(buider.Length - 1, 1);
                    new MySqlCommand(buider.ToString(), tran.Connection, tran).ExecuteNonQuery();
                }
            }
        }
Ejemplo n.º 30
0
            void ParseFromCsv <K, V>(SheetInfo si, TextAsset source) where V : AssetData <K>
            {
                using (var reader = new CsvFileReader(new MemoryStream(source.bytes)))
                {
                    // NOTE: HEADER
                    reader.ReadLine();

                    var list = new List <V>(512);
                    var row  = new CsvRow();
                    while (reader.ReadRow(row))
                    {
                        var elem = (V)si.buildFunc(si, row);
                        list.Add(elem);
                    }
#if LOG_ASSET
                    Debug.Log(string.Format("SERVICEMODEL:SHEET:{0}:{1}", si.sheetname, ConvertString.Execute(list)));
#endif// LOG_ASSET
                    MVC.Model <K, V> .Open(ServiceModelManager.GetAssetCode <K, V>, list);
                }
            }
Ejemplo n.º 31
0
    List<SheetInfo> GetSpreadSheetIDs(string gDocsUrl)
    {
        Match match = Regex.Match(gDocsUrl, "key=(?<gDocsKey>[^&#]+)");
        string gDocskey = match.Groups["gDocsKey"].Value;

        string URL = "https://spreadsheets.google.com/spreadsheet/pub?key=" + gDocskey;

        List<SheetInfo> res = new List<SheetInfo>();
        res = GetSheetIDs(URL, res);

        //Also fetch the ID of the default sheet.
        if (res.Count > 0)
            GetSheetIDs(URL + "&gid=" + res[0].ID, res);

        if (res.Count == 0)
        {
            Debug.LogWarning("No sheets found, or your spreadsheet has only 1 sheet. We are assuming that the first sheet has ID '0'. (You can fix this by simply adding a second sheet as this will allow ID lookup via HTML output)");
            SheetInfo info = new SheetInfo();
            info.ID = 0;
            info.title ="Sheet1";
            res.Add(info);
        }
        return res;
    }
Ejemplo n.º 32
0
 //Parse sheet IDs from the HTML view.
 List<SheetInfo> GetSheetIDs(string URL, List<SheetInfo> sheetList)
 {
     string output = GetWebpage(URL);
             
      MatchCollection matches = Regex.Matches(output, ";gid=(?<sheetID>[0-9]+)\">(?<sheetTitle>[^<]+)</");
     foreach (Match mat in matches)
     {
         int sheetID = int.Parse(mat.Groups["sheetID"].Value);
         string sheetTitle = mat.Groups["sheetTitle"].Value;
         bool present = false;
         foreach (SheetInfo info in sheetList)
         {
             if (info.ID == sheetID)
             {
                 present = true;
                 break;
             }
         }
         if (!present)
         {
             SheetInfo inf = new SheetInfo();
             inf.ID = sheetID;
             inf.title = sheetTitle;
             sheetList.Add(inf);
         }
     }
     
     return sheetList;
 }