Beispiel #1
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);
        }
Beispiel #2
0
        private static void ExcelExport(string sourceLanguage, string targetLanguage, bool exportAll, FileInfo outputFile)
        {
            Console.WriteLine();

            outputFile ??= new FileInfo(string.Format(OutputFileNameTemplate, sourceLanguage, targetLanguage));
            Console.WriteLine("Source language code: {0:s}", sourceLanguage);
            Console.WriteLine("Target language code: {0:s}", targetLanguage);
            Console.WriteLine("Output file: {0:s}", outputFile.FullName);
            Console.WriteLine("Export all: {0:b}\n", exportAll);

            if (!FindStringResourceDirectories(sourceLanguage, targetLanguage, out DirectoryInfo sourceLanguageDirectory, out DirectoryInfo targetLanguageDirectory))
            {
                return;
            }

            DirectoryInfo outputFileDirectory = outputFile.Directory;

            if (!outputFileDirectory.Exists)
            {
                Console.WriteLine("\nERROR: Output directory {0:s} does not exist", outputFileDirectory.FullName);
                return;
            }

            StringResources sourceStrings = ParseDirectory(sourceLanguage, true, sourceLanguageDirectory);

            if (sourceStrings == null)
            {
                return; // Something went wrong
            }
            StringResources targetStrings = ParseDirectory(targetLanguage, false, targetLanguageDirectory);

            if (targetStrings == null)
            {
                return; // Something went wrong
            }
            Console.WriteLine("Writing output file ... ");
            try
            {
                ExcelReaderWriter.Write(sourceStrings, targetStrings, exportAll, outputFile);
                Console.WriteLine("Done!\n");
            }
            catch
            {
                Console.WriteLine("ERROR: Could not create output file. Make sure you have write access and that the file is not open in Excel.");
            }
        }
Beispiel #3
0
        private static void ExcelImport(string sourceLanguage, string targetLanguage, FileInfo inputFile)
        {
            Console.WriteLine();

            Console.WriteLine("Source language code: {0:s}", sourceLanguage);
            Console.WriteLine("Target language code: {0:s}", targetLanguage);
            Console.WriteLine("Input file: {0:s}", inputFile.FullName);

            if (!FindStringResourceDirectories(sourceLanguage, targetLanguage, out DirectoryInfo sourceLanguageDirectory, out DirectoryInfo targetLanguageDirectory))
            {
                return;
            }

            if (!inputFile.Exists)
            {
                Console.WriteLine("\nERROR: The input file {0:s} does not exist", inputFile.FullName);
                return;
            }

            StringResources sourceStrings = ParseDirectory(sourceLanguage, true, sourceLanguageDirectory);

            if (sourceStrings == null)
            {
                return; // Something went wrong
            }
            StringResources targetStringsFromXml = ParseDirectory(targetLanguage, false, targetLanguageDirectory);

            if (targetStringsFromXml == null)
            {
                return; // Something went wrong
            }
            StringResources targetStringsFromExcel;

            try
            {
                targetStringsFromExcel = ExcelReaderWriter.Read(sourceLanguage, targetLanguage, inputFile);
            }
            catch (ArgumentException)
            {
                Console.WriteLine("ERROR: The input file does not seem to contain translations");
                return;
            }
            catch (InvalidDataException ide)
            {
                Console.WriteLine("ERROR: The data in the input file is not valid.\n  {0:s}", ide.Message);
                return;
            }
            catch
            {
                Console.WriteLine("ERROR: The input file could not be parsed. Are you sure it is an Excel file?");
                return;
            }

            // Merge the strings from the resource files and Excel file
            var targetStrings = Merge(sourceStrings, targetStringsFromXml, targetStringsFromExcel, out var mergeStatistics);

            Console.WriteLine("Source directory: {0:d} strings = {1:d} translatable + {2:d} untranslatable + {3:d} empty",
                              sourceStrings.Strings.Count, sourceStrings.Strings.Count - mergeStatistics.UntranslatableSources - mergeStatistics.EmptySources,
                              mergeStatistics.UntranslatableSources, mergeStatistics.EmptySources);

            Console.WriteLine("Target directory: {0:d} translations final, {1:d} not final, {2:d} missing, {3:d} extra\n",
                              mergeStatistics.FinalTargets, mergeStatistics.NonFinalTargets, mergeStatistics.MissingTargets, mergeStatistics.ExtraTargets);

            Console.WriteLine("Recreating target directory ... ");
            try
            {
                if (RecreateTargetDirectory(targetLanguageDirectory, targetStrings))
                {
                    Console.WriteLine("Done!\n");
                }
            }
            catch
            {
                Console.WriteLine("ERROR: Could not recreate the resource files in the target directory");
            }
        }