feat(soffice): add support for Excel and Calc spreadsheet conversions

This commit is contained in:
Orban Gergo 2026-08-15 23:46:54 +03:00
parent 70a2530456
commit 832f92c426
2 changed files with 15 additions and 47 deletions

View File

@ -699,47 +699,6 @@ export async function convert(
let extraArgs: string[] = [];
let message = "Done";
const audioFormatsWithCover = ["m4a", "mp3", "flac", "ogg"];
const audioFormatsNoCover = ["wav", "aac"];
const audioInputFormats = [
"aac",
"ac3",
"ac4",
"aiff",
"alac",
"amr",
"ape",
"au",
"caf",
"dts",
"eac3",
"flac",
"m4a",
"m4b",
"mka",
"mp2",
"mp3",
"mpc",
"ogg",
"oga",
"opus",
"ra",
"voc",
"wav",
"wma",
"wv",
];
if (
audioFormatsWithCover.includes(convertTo) &&
audioInputFormats.includes(fileType.toLowerCase())
) {
extraArgs.push("-c:v", "copy", "-disposition:v", "attached_pic");
} else if (audioFormatsNoCover.includes(convertTo) || audioFormatsWithCover.includes(convertTo)) {
extraArgs.push("-vn");
}
if (convertTo === "ico") {
// Make sure image is 256x256 or smaller
extraArgs = [

View File

@ -6,7 +6,6 @@ export const properties = {
text: [
"602",
"abw",
"csv",
"cwk",
"doc",
"docm",
@ -35,7 +34,6 @@ export const properties = {
"stw",
"sxw",
"tab",
"tsv",
"txt",
"wn",
"wpd",
@ -46,10 +44,10 @@ export const properties = {
"xml",
"zabw",
],
calc: ["csv", "ods", "tsv", "xls", "xlsx"],
},
to: {
text: [
"csv",
"doc",
"docm",
"docx",
@ -65,13 +63,13 @@ export const properties = {
"pdf",
"rtf",
"tab",
"tsv",
"txt",
"wps",
"wpt",
"xhtml",
"xml",
],
calc: ["csv", "ods", "pdf", "tsv", "xls", "xlsx", "ots", "xlsm", "xlt", "xltm"],
},
};
@ -117,7 +115,7 @@ const filters: Record<FileCategories, Record<string, string | null>> = {
// filter makes soffice reject a genuine Works document with "source file
// could not be loaded", even though it converts the same file fine with
// no --infilter at all (LibreOffice auto-detects it correctly).
//
// null is deliberate for BOTH directions here, not just the import side:
// this map feeds both --infilter (import) and the --convert-to suffix
// (export). On import, null lets LibreOffice auto-detect - its Works
@ -133,7 +131,18 @@ const filters: Record<FileCategories, Record<string, string | null>> = {
xml: "OpenDocument Text Flat XML",
zabw: "AbiWord",
},
calc: {},
calc: {
csv: "Text - txt - csv (StarCalc)",
ods: "calc8",
ots: "calc8_template",
pdf: "calc_pdf_Export",
tsv: "Text - txt - csv (StarCalc)",
xls: "MS Excel 97",
xlsx: "Calc MS Excel 2007 XML",
xlsm: "Calc MS Excel 2007 XML VBA",
xlt: "MS Excel 97 Vorlage",
xltm: "Calc MS Excel 2007 XML Template",
},
};
const getFilters = (fileType: string, converto: string) => {