欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

將html表格導出為excel,但直接導出到網絡存儲

錢衛國2年前8瀏覽0評論

我想問一下。我們知道將html表格導出為excel表格,但我必須下載它,然后上傳到我的Laravel應用程序的存儲中。當我點擊導出時,文件會直接下載到網絡存儲器而不是我的電腦上嗎?

請給我一個這樣做的方法。

我嘗試過直接自動導出到網絡存儲,但是失敗了。我需要一種方法,我可以直接上傳文件到網絡存儲,而不是下載和上傳。

我正在使用onclick按鈕js函數導出為excel

<script type="text/javascript">
  var tableToExcel = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,'
      , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><ExcelWorkbook><ExcelWorksheets><ExcelWorksheet><Name>{worksheet}</Name><WorksheetOptions><DisplayGridlines/></WorksheetOptions></ExcelWorksheet></ExcelWorksheets></ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
      , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
      , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
    return function(table, name) {
      if (!table.nodeType) table = document.getElementById(table)
      var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
      window.location.href = uri + base64(format(template, ctx))
    }
  })()
  </script>

是的,可以將Excel文件直接下載到web存儲器,而不是下載到用戶的PC上,然后再上傳到web存儲器。實現這一點的一種方法是使用AJAX將Excel數據發送到服務器,然后使用PHP將其保存到web存儲器。

這里有一個例子:

修改tableToExcel函數,使用AJAX將Excel數據發送到服務器,而不是使用window.location.href下載數據:

var tableToExcel = function(table, name) {
  if (!table.nodeType) table = document.getElementById(table)
  var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
  $.ajax({
    type: "POST",
    url: "/export-excel",
    data: {excel_data: format(template, ctx)},
    success: function(response) {
      alert('Excel file saved to web storage!');
    }
  });
};

在您的Laravel應用程序中創建一個新的路由來處理AJAX請求,并將Excel數據保存到web存儲中。在處理路由的控制器方法中,您可以使用存儲外觀將Excel數據保存到所需位置的文件中:

use Illuminate\Support\Facades\Storage;

public function exportExcel(Request $request)
{
  $excelData = $request->input('excel_data');
  $filename = 'example.xlsx';
  Storage::put($filename, $excelData);
  return response()->json(['success' => true]);
}

最后,更新您的HTML代碼,以便在用戶單擊導出按鈕時調用tableToExcel函數:

<button onclick="tableToExcel('myTable', 'My Table')">Export to Excel</button>

請注意,您需要在HTML文件中包含jQuery庫,這樣AJAX請求才能工作:

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

通過這些更改,當用戶單擊export按鈕時,Excel數據將使用AJAX發送到服務器,服務器將使用Storage facade將其保存到web存儲中。一旦文件被保存,將向用戶顯示一個警告,指示文件已被保存到web存儲器。