Чтение файла Excel (xlsx) в C # добавляет дополнительные символы в столбцы, содержащие кандзи - PullRequest
0 голосов
/ 11 сентября 2018

Я наткнулся на любопытную проблему в C #.Я импортирую файл xlsx в программу C #, чтобы импортировать пользователей с помощью группового приглашения.Большая часть электронной таблицы находится в кандзи, однако есть один столбец с английскими (западными) значениями.

При циклическом перемещении по строкам значения кандзи добавляются к ним дополнительными символами, но английские значения отображаются нормально.

Файл Excel имеет три столбца:

  • メ ー ル ア ド レ 101

Электронная таблица состоит из двух строк, вот пример:

一二三 小鳥遊 xxxx.xxxx@gmail.com

Когда я перебираю электронную таблицу в отладчике, она выглядит как

一二三イチニサン 小鳥遊コトリアソ xxxx.xxxx@gmail.com

Обратите внимание на дополнительные символы.Сначала я думал, что они были заголовками столбцов, но они не совпадают.Я не читаю кандзи, поэтому извиняюсь, если упускаю что-то очевидное.

C #

public static DataSet GetDataSetFromExcelStream(Stream excel, string fileName, bool FirstRowAsColumns)
{
    DataSet worksheets = new DataSet();
    string extension = Path.GetExtension(fileName).Replace(".", "");
    IExcelDataReader excelReader = null;
    ExcelFormat ext = ExcelFormat.xls;
    if (Enum.TryParse<ExcelFormat>(extension, out ext))
    {
        switch (ext)
        {
            case ExcelFormat.xls:
                excelReader = ExcelReaderFactory.CreateBinaryReader(excel);
                break;
            case ExcelFormat.xlsx:
                excelReader = ExcelReaderFactory.CreateOpenXmlReader(excel);
                break;
        }
        excelReader.IsFirstRowAsColumnNames = FirstRowAsColumns;
        worksheets = excelReader.AsDataSet();
    }
    return worksheets;
}
...