Мне нужно передать данные из нескольких Flexgrids в разных формах в приложении VB6 в файлы .xls на компьютерах, на которых не установлено excel. На этих ПК установлены Openoffice, LibreOffice и т. Д.VB6 To Xls без Excel
Я разработал общую процедуру, которая принимает FlexGrid в качестве параметра и передает свои данные в xls. Эта процедура использует DAO. Поскольку различные столбцы в различных FlexGrids содержат различные типы данных, в процедуре я определяю поля как тип «dbText».
t.Fields.Append t.CreateField(pFlxGrd.TextMatrix(0, j), dbText)
Передача из любой сетки в xls работает нормально. Но проблема заключается в том, что для каждой ячейки, содержащей данные, вставляются одинарные кавычки для указания ее данных типа Text.
Есть ли способ удалить или избежать этих котировок? Поскольку числовые данные должны использоваться для суммирования и т. Д., Эти цитаты должны быть освобождены.
Попробуйте использовать тип числовых данных, например, dbInteger или dbLong? См. Https://msdn.microsoft.com/en-us/library/office/ff194420.aspx. – MarkL
Использование числового типа данных не поможет, поскольку процедура предоставляется сеткой в качестве параметра, и она просто посылает данные сетки, чтобы преуспеть. И, создавая поля в tabledef из заголовков сетки, он не будет знать, что такое числовое поле, а какое нет. –
Можете ли вы это сделать, это зависит от нескольких вещей. Проблема в том, что JetISI IISAM должен обрабатывать каждый столбец Листа или Диапазон как один тип данных. Текст, как правило, String, числовой, как правило, Double и т. Д. Если типы в существующем листе/диапазоне смешаны, все может стать критичным. Столбец может заканчиваться как String или Double, в зависимости от того, что находится в первом MaxScanRows (по умолчанию 8). – Bob77