При чтении данных из файла .xlsx

string Code = ""; if (fileUp.HasFile) { string Path = fileUp.PostedFile.FileName; // initialize the Excel Application class ApplicationClass app = new ApplicationClass(); // create the workbook object by opening the excel file. Workbook workBook = app.Workbooks.Open(Path, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); // Get The Active Worksheet Using Sheet Name Or Active Sheet Worksheet workSheet = (Worksheet)workBook.ActiveSheet; int index = 0; // This row,column index should be changed as per your need. // that is which cell in the excel you are interesting to read. object rowIndex = 2; object colIndex1 = 1; object colIndex2 = 2; object colIndex3 = 3; object colIndex4 = 4; object colIndex5 = 5; object colIndex6 = 6; object colIndex7 = 7; try { while (((Range)workSheet.Cells[rowIndex, colIndex1]).Value2 != null) { rowIndex = 2 + index; //string QuestionCode = (index + 1).ToString(); string QuestionCode = ((Range)workSheet.Cells[rowIndex, colIndex1]).Value2.ToString(); string QuestionText = ((Range)workSheet.Cells[rowIndex, colIndex2]).Value2.ToString(); string CorrectAnswer = ((Range)workSheet.Cells[rowIndex, colIndex3]).Value2.ToString(); string ChoiceA = ((Range)workSheet.Cells[rowIndex, colIndex4]).Value2.ToString(); string ChoiceB = ((Range)workSheet.Cells[rowIndex, colIndex5]).Value2.ToString(); string ChoiceC = ((Range)workSheet.Cells[rowIndex, colIndex6]).Value2.ToString(); string ChoiceD = ((Range)workSheet.Cells[rowIndex, colIndex7]).Value2.ToString(); // string ChoiceE = ((Excel.Range)workSheet.Cells[rowIndex, colIndex7]).Value2.ToString(); newQuestionElement = new XElement("Question"); XElement optionElement = new XElement(QuestionElement.Option); questionType = ddlQusType.SelectedValue.ToByte(); if (!string.IsNullOrEmpty(QuestionText)) newQuestionElement.Add(new XElement(QuestionElement.QuestionText, QuestionText)); else { //lblMessage.Text = "Missing question in Qus No.: " + i; break; } newQuestionElement.Add(new XElement(QuestionElement.QuestionType, questionType)); //newQuestionElement.Add(new XElement(QuestionElement.Randomize, chbRandomizeChoice.Checked)); newQuestionElement.Add(new XElement(QuestionElement.Answer, CorrectAnswer)); if (ChoiceA.Trim() != string.Empty) optionElement.Add(new XElement("A", ChoiceA)); if (ChoiceB.Trim() != string.Empty) optionElement.Add(new XElement("B", ChoiceB)); if (ChoiceC.Trim() != string.Empty) optionElement.Add(new XElement("C", ChoiceC)); if (ChoiceD.Trim() != string.Empty) optionElement.Add(new XElement("D", ChoiceD)); newQuestionElement.Add(optionElement); index++; saveData(QuestionCode.ToString()); 

Я использую этот код для извлечения данных из файла .xlsx.

Но если в файле есть какие-то специальные символы, он показывает это как разные, например

 The set S = {1,2,33……….12} is to be partitioned into three sets A,B,C of equal size. Thus, `AUBUC = S,` The set S = {1,2,33……….12} is to be partitioned into three sets A,B,C of equal size. Thus, `A È B È C = S,` 

Похож на проблему с кодировкой.

Я использую эту проблему после чтения Excel в таблицу данных, а затем сериализую таблицу данных в файл.

Каждый раз, когда я читал данные из сериализованного файла, некоторые символы заменялись бы смешными A и E.

Я обнаружил, что проблема связана с кодировкой, которую я использовал. Затем я начал хранить данные Excel с использованием кодировки Unicode и никогда не сталкивался с другой проблемой символа с данными Excel снова.

Надеюсь, это поможет…

  • MVC4: экспортировать изображение qrcode в Excel
  • Экспорт таблицы HTML в Excel на странице aspx с арабским содержанием
  • Исключение: Исключение из HRESULT: 0x800A03EC при создании новой книги Excel
  • Прочитать XML-лист распространения 2003 по столбцу в C #
  • импортировать определенный диапазон от файла xls до datagridview в c #
  • C # чтение нескольких файлов Excel
  • Excel 14 вместо Excel 15 (2013) запущен
  • Обновление листа Excel в C #
  • создавать и писать в файл excel из c #
  • Редактирование таблиц Excel легко с помощью SDK
  • Как предотвратить разбор определенных разграниченных значений запятой (C #)
  • Давайте будем гением компьютера.