CftClub.ru
Клуб специалистов ЦФТ-Банк

Загрузка данных из Excel ...

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Мастер-класс от Участников Клуба
Предыдущая тема :: Следующая тема  
Автор Сообщение
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)
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Мастер-класс от Участников Клуба Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах