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 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."); } }
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"); } }