@@ -1544,6 +1544,57 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
1544
1544
layerOptions
1545
1545
)
1546
1546
);
1547
+
1548
+ // XLSX
1549
+ datasetOptions.clear ();
1550
+ layerOptions.clear ();
1551
+
1552
+ layerOptions.insert ( " OGR_XLSX_FIELD_TYPES" , new SetOption (
1553
+ QObject::tr ( " By default, the driver will try to detect the data type of fields. If set "
1554
+ " to STRING, all fields will be of String type." ),
1555
+ QStringList ()
1556
+ << " AUTO"
1557
+ << " STRING" ,
1558
+ " AUTO" , // Default value
1559
+ false // Allow None
1560
+ ) );
1561
+
1562
+ driverMetadata.insert ( " XLSX" ,
1563
+ MetaData (
1564
+ " MS Office Open XML spreadsheet" ,
1565
+ QObject::tr ( " MS Office Open XML spreadsheet" ),
1566
+ " *.xlsx" ,
1567
+ " xlsx" ,
1568
+ datasetOptions,
1569
+ layerOptions
1570
+ )
1571
+ );
1572
+
1573
+ // ODS
1574
+ datasetOptions.clear ();
1575
+ layerOptions.clear ();
1576
+
1577
+ layerOptions.insert ( " OGR_ODS_FIELD_TYPES" , new SetOption (
1578
+ QObject::tr ( " By default, the driver will try to detect the data type of fields. If set "
1579
+ " to STRING, all fields will be of String type." ),
1580
+ QStringList ()
1581
+ << " AUTO"
1582
+ << " STRING" ,
1583
+ " AUTO" , // Default value
1584
+ false // Allow None
1585
+ ) );
1586
+
1587
+ driverMetadata.insert ( " ODS" ,
1588
+ MetaData (
1589
+ " Open Document Spreadsheet" ,
1590
+ QObject::tr ( " Open Document Spreadsheet" ),
1591
+ " *.ods" ,
1592
+ " ods" ,
1593
+ datasetOptions,
1594
+ layerOptions
1595
+ )
1596
+ );
1597
+
1547
1598
return driverMetadata;
1548
1599
}
1549
1600
@@ -2514,6 +2565,20 @@ bool QgsVectorFileWriter::driverMetadata( const QString& driverName, QString &lo
2514
2565
glob = " *.gdb" ;
2515
2566
ext = " gdb" ;
2516
2567
}
2568
+ else if ( driverName.startsWith ( " XLSX" ) )
2569
+ {
2570
+ longName = " MS Office Open XML spreadsheet [XLSX]" ;
2571
+ trLongName = QObject::tr ( " MS Office Open XML spreadsheet [XLSX]" );
2572
+ glob = " *.xlsx" ;
2573
+ ext = " xlsx" ;
2574
+ }
2575
+ else if ( driverName.startsWith ( " ODS" ) )
2576
+ {
2577
+ longName = " Open Document Spreadsheet" ;
2578
+ trLongName = QObject::tr ( " Open Document Spreadsheet [ODS]" );
2579
+ glob = " *.ods" ;
2580
+ ext = " ods" ;
2581
+ }
2517
2582
else
2518
2583
{
2519
2584
return false ;
0 commit comments