Случайно наткнулся на то, что EXCEL2007/2010 число 2,01 хранит как 2.0099999999999998.
Пример: Создаем excel файл и прописываем в ячейки числовые значения с точкой

Сохраняем файл как «Таблица XML 2003» и открываем на просмотр в текстовом редакторе:
Читать дальше про “EXCEL — некорректная точность чисел с десятичной точкой” »
Для написания красивых отчетов в Excel (под OEBS) довольно часто используем XSL шаблон.
Для тестирования XSL шаблона есть несколько вариантов:
- Загружаем XSL в OEBS и запускаем отчет — самый долгий способ.
- Используем мощный редактор Altova XMLSpy, который позволяет накладывать XSL на XML (XSL-Transformation). Основной минус, то что продукт платный.
- Используем javascript скрипт представленный ниже.
var xmlFile = "data.xml"; // xml данные
var xslFile = "tempalate.xsl"; // xsl шаблон
var outFile = "REPORT.xls"; // имя генерируемого файла
//
var Xml = null;
var Xsl = null;
var objTransformer = null;
function init()
{
Xml = new ActiveXObject("MSXML2.DOMDocument");
Xml.async = false;
Xml.load(xmlFile);
Xsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
Xsl.async = false;
Xsl.load(xslFile);
// запись в файл
f = new ActiveXObject("ADODB.Stream");
f.Charset = "UTF-8";
f.Open();
f.WriteText(Xml.transformNode(Xsl));
f.SaveToFile(outFile,2);
f.Close();
// запуск файла
//var WshShell = new ActiveXObject("WScript.Shell");
//WshShell.Run(outFile);
}
init();
Для использования скрипта создаем файл с расширением «.js», например «GenerateReportXML-XSL.js». Указываем в скрипте название файлов для шаблона и данных. Запускаем скрипт на выполнение (Windows).
-
В данных после
< ?xml version="1.0" encoding="UTF-8"?>
добавляем новый тег
< ?xml-stylesheet href="XXX.xsl" type="text/xsl"?>
, где XXX.xsl имя xslt преобразования. Затем открываем xml через Excel
Последние комментарии