Загрузка данных из Excel ...
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
kai Профи
Вступление в Клуб: 16.08.2012
|
Чт Фев 07, 2019 18:45  Загрузка данных из Excel ... |
|
Полезность: 2
|
Не смотря на то, цель разработки библиотеки [OOXML]::[API_XL] - создание отчётов, есть попытки (и успешные и нет - речь о вторых) использовать её для загрузки данных.
Итак, ещё раз: цель разработки библиотеки [OOXML]::[API_XL] - создание отчётов на основании файлов-шаблонов (существующих на тот момент создания библиотеки, а также, желательно, созданных в Excel и проверенных на совместимость с API_XL)
(создание отчётов означает выгрузку данных в файл; выгрузка не является загрузкой ))))))))
Библиотека
а) не предназначена и
б) не рекомендуется для импорта данных.
Наличие функции чтения данных из ячейки не является основополагающей способностью API_XL и предназначена для эпизодического использования из проверенных шаблонов
Для информации (для тех кто не сталкивался):
есть некоторые "сложности" при чтении напрямую данных из XML файлов, спрятанных внутри XLSX.
предыстория:
У нас появился интересный дефект при подгрузке файлов xlsx.
В столбце E указано значение "100,261", но при подгрузке файла импортируется значение value=100.26900000000001.
Импорт произвожу функцией [OOXML]::[API_XL].getSheetRowColVal.
после регистрации заявки в Microsoft'e вот ответ их поддержки:
// не перевожу, надеюсь будет всем понятно
Цитата: | Symptom:
Product: Microsoft Office 2016
Application: Microsoft Excel 2016
Version: 16.0.4738.1000
Problem description: When you create an Excel file an input the below values, you have the numbers changed when you check the XML structure of the file
Steps to replicate the issue:
1. Microsoft Excel input number 1.1 in "A1" cell of new workbook.
2. File saved as Test.xlsx
3. When you check the data in the XML structure of the file \xl\worksheets\sheet1.xml you find the next information
<c r="A1"><v>1.1000000000000001</v></c>
4. You expect to find the number 1.1 but instead you get the extra 000000000000001
You would like to know why does Microsoft Excel write the additional numbers.
Cause:
Microsoft Excel was designed around the IEEE 754 specification to determine how it stores and calculates floating-point numbers.
Resolution:
https://support.microsoft.com/en-us/help/78113/floating-point-arithmetic-may-give-inaccurate-results-in-excel
More information:
Excel is an application that bases his calculation on the Operating System that’s installed on. The operating system performs the calculation based on the CPU, that is working with binary code.
For more details about how the calculation is done, please check in the article above. |
Желающие могут поделиться, как часто и каким способом они импортят данные в БД. |
|
|
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пт Фев 08, 2019 16:59   |
|
Полезность: Нет оценки
|
Приветствую.
[OOXML]::[API_XL].getSheetRowColVal.
где работает, на клиенте (Win)или на сервере(ORACLE) ? |
|
|
kai Профи
Вступление в Клуб: 16.08.2012
|
Пт Фев 08, 2019 17:18   |
|
Полезность: Нет оценки
|
[OOXML]::[API_XL].getSheetRowColVal работает на сервере (ORACLE) |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|