Skip to content

Commit 9dc7662

Browse files
author
Patrick Valsecchi
committed
Add saveAs XLSX and ODS
1 parent b2cc309 commit 9dc7662

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

src/core/qgsvectorfilewriter.cpp

+65
Original file line numberDiff line numberDiff line change
@@ -1544,6 +1544,57 @@ QMap<QString, QgsVectorFileWriter::MetaData> QgsVectorFileWriter::initMetaData()
15441544
layerOptions
15451545
)
15461546
);
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+
15471598
return driverMetadata;
15481599
}
15491600

@@ -2514,6 +2565,20 @@ bool QgsVectorFileWriter::driverMetadata( const QString& driverName, QString &lo
25142565
glob = "*.gdb";
25152566
ext = "gdb";
25162567
}
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+
}
25172582
else
25182583
{
25192584
return false;

0 commit comments

Comments
 (0)