在我的应用程序中,我有一个使用数据表动态显示的表格,并启用了“csv”和“excel”按钮。在 ios 模拟器上,Excel 文件打开,但没有保存它的选项等。是否可以将文件下载到设备上?当我通过典型网站使用数据表按钮时,文件会自动下载到浏览器中。
抱歉,我是 phonegap 等的新手,所以如果这是一个愚蠢的问题,我深表歉意。
感谢您提供的任何建议。
在我的应用程序中,我有一个使用数据表动态显示的表格,并启用了“csv”和“excel”按钮。在 ios 模拟器上,Excel 文件打开,但没有保存它的选项等。是否可以将文件下载到设备上?当我通过典型网站使用数据表按钮时,文件会自动下载到浏览器中。
抱歉,我是 phonegap 等的新手,所以如果这是一个愚蠢的问题,我深表歉意。
感谢您提供的任何建议。
通过使用插件:cordova-plugin-file,您可以保存到文档目录“cordova.file.documentsDirectory”。默认情况下,此目录与 iCloud 共享,因此可以通过 ios File 文件夹打开保存在此处的文件,然后用户可以选择文件并点击共享图标以使用适当的应用程序(例如 Numbers 等)打开。
要打开 iCloud,您必须向 Apple 支付开发者费用并选择相关选项。我发现文章“使用 iOS 11 中的文件应用程序”有助于启动此过程。
我在使用 datatables-buttons 将 Excel 文件保存到设备时遇到问题,但我可以通过更新 datatables.js 将其作为 .csv 文件执行。
在您的平台 datatables.js 文件中:
//In your datatables file go to the following section:
//
// CSV export
//
DataTable.ext.buttons.csvHtml5 = {
....
//comment out
/*
_saveAs(
new Blob( [output], {type: 'text/csv'+charset} ),
info.filename,
true
);
*/
//add a call to this new function
saveToDeviceDocuments(info.filename, output)
....
}
//add the function somewhere
//<!-- Save CSV file to iOS Files -->
saveToDeviceDocuments = (filename, csvText) => {
document.addEventListener('deviceready', onDeviceReady, false);
var logOb;
function fail(e) {
console.log("FileSystem Error");
console.dir(e);
}
function onDeviceReady() {
window.resolveLocalFileSystemURL(cordova.file.documentsDirectory, function(dir) {
console.log("got main dir =" + dir);
dir.getFile(filename, {create:true}, function(file) {
console.log("got the file", file);
logOb = file;
writeLog(csvText);
});
});
}
function writeLog(str) {
if(!logOb) return;
logOb.createWriter(function(fileWriter) {
fileWriter.seek(fileWriter.length);
var blob = new Blob([str], {type:'text/plain'});
fileWriter.write(blob);
console.log("ok, in theory i worked");
$(".buttons-csv").html("Spreadsheet saved to files!")
}, fail);
}
function justForTesting() {
logOb.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
console.log(this.result);
};
reader.readAsText(file);
}, fail);
}
setTimeout(justForTesting, 2000)
}
希望这对某人有所帮助,作为一个新的爱好者开发者,我花了很长时间才把这些线索放在一起。我希望我能以 Excel 格式保存它,但我找不到任何方法来更新 _jszip 以保存在浏览器之外的任何地方。