Экспоненциальное представление при импорте из Excel в .NET

Это распространенная проблема, обнаруженная в свойстве column-count. Для вашей проблемы вы можете использовать следующее решение, которое отлично работает с очень немногими css changes, а также я заметил, что в вашем вопросе вы дублировали идентификатор элемента, который приводит ваш HTML к недействительному. Так что избегайте этого в будущем, работайте с css classes.

#container {
  overflow-y: auto;
  height: 300px;
  width: 400px;
  border: 1px solid black;
}

#columncontainer {
  /* column-count: 2;*/
  border: 1px solid red;
  width: 100%;
}

#columncontainer>span {
  /*width: 100%;*/
  display: inline-block;
  background-color: #CCCC;
  margin: 5px;
  border: 1px solid blue;
  width: calc(50% - 15px);
}

.block1,
.block2 {
  height: 200px;
  width: 200px;
}

.block3 {
  height: 50px;
  width: 200px;
}
<div id='container'>

  <div id='columncontainer'>
    <span id='span1' class="block1">Block1</span>
    <span id='span2' class="block2">Block2</span>
    <span id='span3' class="block3">Block3</span>
  </div>

</div>

7
задан ChrisDiRulli 9 January 2009 в 21:40
поделиться

4 ответа

Библиотека OleDb, как правило, испортит Ваши данные в электронной таблице Excel. Это в основном, потому что это принуждает все к расположению столбца фиксированного типа, предполагая тип каждого столбца от значений в первых 8 ячейках в каждом столбце. Если это не угадывает, Вы заканчиваете со строками цифр, преобразованными в экспоненциальное представление. Blech!

Для предотвращения этого, Вы - более обеспеченный пропуск OleDb и чтение листа непосредственно сами. Можно сделать это использование COM-интерфейса Excel (также отрыжка!), или сторонняя.NET совместимый с Excel читатель. SpreadsheetGear является одной такой библиотекой, которая работает обоснованно хорошо и имеет интерфейс, это очень похоже на COM-интерфейс Excel.

3
ответ дан 6 December 2019 в 21:21
поделиться

Я нашел, что самый легкий путь состоит в том, чтобы выбрать формат Zip, а не текстовый формат для столбцов с большими 'числами'.

0
ответ дан 6 December 2019 в 21:21
поделиться

Вы попытались бросить значение поля к (интервалу) или возможно (Int64), поскольку Вы читаете его?

0
ответ дан 6 December 2019 в 21:21
поделиться

Ищите опцию строки подключения IMEX=1 и установку реестра TypeGuessRows на Google. По правде говоря, нет никакого простого способа вокруг этого, потому что читатель выводит типы данных столбца путем рассмотрения первых нескольких строк (8 по умолчанию). Если строки содержат все числа затем, Вам не повезло.

Неудачное обходное решение, которое я использовал в прошлом, должно использовать опцию строки подключения HDR=NO и устанавливать реестр TypeGuessRows, устанавливающий значение на 1, который вынуждает это считать первую строку как допустимые данные для создания его определения типа данных, а не заголовка. Это - взлом, но это работает. Код читает первую строку (содержащий заголовок) как текст и затем устанавливает тип данных соответственно.

Изменение реестра является болью (и не всегда возможный), но я рекомендовал бы восстановить исходное значение впоследствии.

Если Ваши данные импорта не имеют строки заголовка, то альтернативная опция состоит в том, чтобы предварительно обработать файл и вставить 'символ перед каждым из чисел в незаконном столбце. Это заставляет данные столбца рассматриваться как текст.

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

0
ответ дан 6 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: