javascript - 如何将javascript生成的文件附加到fileupload中?
问题描述
我正在研究类似于 这个项目的东西,它使用 javascript 生成和下载 excel 文件。有什么方法可以将生成的文件附加到文件上传器中,以便在提交表单时最终上传它。
function go(){
var excel = $JExcel.new("Calibri light 10 #333333");
excel.set( {sheet:0,value:"This is Sheet 1" } );
excel.addSheet("Sheet 2");
var evenRow=excel.addStyle ( { // Style for even ROWS
border: "none,none,none,thin #333333"});
var oddRow=excel.addStyle ( { // Style for odd ROWS
fill: "#ECECEC" , // Background color, plain #RRGGBB, there is a helper $JExcel.rgbToHex(r,g,b)
border: "none,none,none,thin #333333"});
for (var i=1;i<50;i++) excel.set({row:i,style: i%2==0 ? evenRow: oddRow }); // Set style for the first 50 rows
excel.set({row:3,value: 30 }); // We want ROW 3 to be EXTRA TALL
var headers=["Header 0","Header 1","Header 2","Header 3","Header 4"]; // This array holds the HEADERS text
var formatHeader=excel.addStyle ( { // Format for headers
border: "none,none,none,thin #333333", // Border for header
font: "Calibri 12 #0000AA B"}); // Font for headers
for (var i=0;i<headers.length;i++){ // Loop all the haders
excel.set(0,i,0,headers[i],formatHeader); // Set CELL with header text, using header format
excel.set(0,i,undefined,"auto"); // Set COLUMN width to auto (according to the standard this is only valid for numeric columns)
}
// Now let's write some data
var initDate = new Date(2000, 0, 1);
var endDate = new Date(2016, 0, 1);
var dateStyle = excel.addStyle ( {
align: "R",
format: "yyyy.mm.dd hh:mm:ss",
font: "#00AA00"});
for (var i=1;i<50;i++){
excel.set(0,0,i,"This is line "+i);
var d=randomDate(initDate,endDate);
excel.set(0,1,i,d.toLocaleString());
excel.set(0,2,i,$JExcel.toExcelLocalTime(d));
excel.set(0,3,i,$JExcel.toExcelLocalTime(d),dateStyle);
excel.set(0,4,i,"Some other text");
}
excel.generate("SampleData.xlsx");//the file to append to file uploader .
}
谢谢 。
解决方案
您不需要将生成的文件附加到表单以保存它,您生成的文件可以是base64
base64 文本,然后可以将隐藏输入发送到服务器并制作文件serverSide
。
就像是 :
(function(file){
// load file
// get base 64
// append base64 to form
// form.querySelector("#fileBase64").value = base64;
})(createdFile)
推荐阅读
- xamarin - Listview 在 xamarin 表单中从下到上滚动滞后问题
- android - 如何将 google play 开发者帐户转移到另一个 google 帐户?
- reactjs - 如何将 React 函数中的参数从一个文件传递到另一个文件
- abap - 将两个内部表连接并聚合为一张
- azure - Xamarin Android 构建在 AppCenter (Azure) 中失败并出现错误 APT0000
- python - 分组数据处理后向数据框中添加新列时出错
- excel - vba excel中是否有选择要出现的excel窗口的代码?
- apache - 如何使用 Apache 在生产环境中运行 Mercure
- arrays - 从选择表单中保存数组值而不是索引
- mysql - 如何选择 - 更新然后将值复制到另一个表(批量)