㈠ js解析excel表格
https://www.cnblogs.com/liuxianan/p/js-excel.html
由 SheetJS 出品的js-xlsx是一款非常方便的只需要純JS即可讀取和導出excel的工具庫,功能強大,支持格式眾多,支持xls、xlsx、ods(一種OpenOffice專有表格文件格式)等十幾種格式。本文全部都是以xlsx格式為例。
dist目錄下有很多個JS文件,一般情況下用xlsx.core.min.js就夠了,xlsx.full.min.js則是包含了所有功能模塊。
javaScript讀取和導出excel示例(基於js-xlsx)
http://demo.haoji.me/2017/02/08-js-xlsx/
㈡ 我想用javascript操作excel文件,ActiveXObject("Excel.Application")
這個是vbscript的,方法在javascript里都是通用的,不過語法略有不同希望對你有幫助
1、 建立Excel對象
set objExcelApp = CreateObject("Excel.Application")
objExcelApp.DisplayAlerts = false 不顯示警告
objExcelApp.Application.Visible = false 不顯示界面
2、 新建Excel文件
objExcelApp.WorkBooks.add
set objExcelBook = objExcelApp.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets(1)
3、 讀取已有Excel文件
strAddr = Server.MapPath(".")
objExcelApp.WorkBooks.Open(strAddr & "\Templet\Table.xls")
set objExcelBook = objExcelApp.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets(1)
4、 另存Excel文件
objExcelBook.SaveAs strAddr & "\Temp\Table.xls"
5、 保存Excel文件
objExcelBook.Save (筆者測試時保存成功,頁面報錯。)
6、 退出Excel操作
objExcelApp.Quit 一定要退出
set objExcelApp = Nothing
三、 ASP操作Excel生成數據表
1、 在一個范圍內插入數據
objExcelSheet.Range("B3:k3").Value = Array("67", "87", "5", "9", "7", "45", "45", "54", "54", "10")
2、 在一個單元格內插入數據
objExcelSheet.Cells(3,1).Value="Internet Explorer"
3、 改變單元格文字顏色
objExcelSheet.Cells(3,1).Font.Color=vbred
4、 單元格四周畫線條
objExcelSheet.Cells(3.1).Borders(1).LineStyle =1
objExcelSheet.Cells(3.1).Borders(2).LineStyle =1
objExcelSheet.Cells(3.1).Borders(3).LineStyle =1
objExcelSheet.Cells(3.1).Borders(4).LineStyle =1
區域中間畫線條
objExcelSheet.Range(「A1:G7」).Borders(7).LineStyle =1
objExcelSheet.Range(「A1:G7」).Borders(8).LineStyle =1
8、 單元格設定背景色
objExcelSheet.Cells(3.1).Interior.colorindex=17
9、 合並單元格
objExcelSheet.Range(「A1:G7」).Merge
10、 設置左右對齊方式
2 left 3 middle 4 right
objExcelSheet.Range("A1").HorizontalAlignment = 2
11、 設置上下對齊方式
2 為居中
objExcelSheet.Range("A1")..VerticalAlignment = 2
四、 ASP操作Excel生成Chart圖
1、 創建Chart圖
objExcelApp.Charts.Add
2、 設定Chart圖種類
objExcelApp.ActiveChart.ChartType = 97
註:二維折線圖,4;二維餅圖,5;二維柱形圖,51
3、 設定Chart圖標題
objExcelApp.ActiveChart.HasTitle = True
objExcelApp.ActiveChart.ChartTitle.Text = "A test Chart"
4、 通過表格數據設定圖形
objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range("A1:k5"),1
5、 直接設定圖形數據(推薦)
objExcelApp.ActiveChart.SeriesCollection.NewSeries
objExcelApp.ActiveChart.SeriesCollection(1).Name = "=""333"""
objExcelApp.ActiveChart.SeriesCollection(1).Values = "={1,4,5,6,2}"
6、 綁定Chart圖
objExcelApp.ActiveChart.Location 1
7、 顯示數據表
objExcelApp.ActiveChart.HasDataTable = True
8、 顯示圖例
objExcelApp.ActiveChart.DataTable.ShowLegendKey = True
五、 伺服器端Excel文件瀏覽、下載、刪除方案
瀏覽的解決方法很多,「Location.href=」,「Navigate」,「Response.Redirect」都可以實現,建議用客戶端的方法,原因是給伺服器更多的時間生成Excel文件。
下載的實現要麻煩一些。用網上現成的伺服器端下載組件或自己定製開發一個組件是比較好的方案。另外一種方法是在客戶端操作Excel組件,由客戶端操作伺服器端Excel文件另存至客戶端。這種方法要求客戶端開放不安全ActiveX控制項的操作許可權,考慮到通知每個客戶將伺服器設置為可信站點的麻煩程度建議還是用第一個方法比較省事。
刪除方案由三部分組成:
A: 同一用戶生成的Excel文件用同一個文件名,文件名可用用戶ID號或SessionID號等可確信不重復字元串組成。這樣新文件生成時自動覆蓋上一文件。
B: 在Global.asa文件中設置Session_onEnd事件激發時,刪除這個用戶的Excel暫存文件。
C: 在Global.asa文件中設置Application_onStart事件激發時,刪除暫存目錄下的所有文件。
註:建議目錄結構 \Src 代碼目錄 \Templet 模板目錄 \Temp 暫存目錄
六、 附錄
出錯時Excel出現的死進程出現是一件很頭疼的事情。在每個文件前加上「On Error Resume Next」將有助於改善這種情況,因為它會不管文件是否產生錯誤都堅持執行到「Application.Quit」,保證每次程序執行完不留下死進程。
㈢ js要怎麼接收後端傳的excel文件流
法1: 無需js,直接用a標簽去接你的輸出流 <a href="<你的返迴流的Action路徑>" >下載</a> 方法2:使用js,前提是你使用的是現代瀏覽器,支持html5特性(主要是新的XMLHTTPRequest對象,Blob) <script type="text/javascript"> function download(filename) { var oReq = new XMLHttpRequest(); oReq.open("GET", "<你的返迴流的Action路徑>", true); oReq.responseType = "blob"; oReq.onload = function (oEvent) { var content = oReq.response; var elink = document.createElement('a'); elink.download = filename; elink.style.display = 'none'; var blob = new Blob([content]); elink.href = URL.createObjectURL(blob); document.body.appendChild(elink); elink.click(); document.body.removeChild(elink); }; oReq.send(); } </script>
㈣ js讀取沒有表頭的excel
在Excel表格里,添上表頭。
第一,打開表格,點擊列印預覽。第二,除了第一頁外,都需要列印。第三,打開菜單欄里的頁面布局選項卡,點擊列印標題。第四,會彈出頁面設置對話框。第五,在列印標題下面有頂端標題行與左端標題列,點擊右邊小圖標。第六,選中的表格第一頁標題行,再點右邊的小圖標,確定,表頭就添加上了。
㈤ IE、谷歌如何通過js讀取Excel中數據到Web頁面的表格
Excel文件,另存為Html格式,就知道了
Response.ContentType 是告訴瀏覽器,伺服器傳遞過來的內容是什麼格式版
這個值默認是權text/html
這個要在所有的客戶機上設置瀏覽器許可權,比如IE的修改方法:
進入Internet屬性=》安全=》自定義級別,把ActiveX控制項和插件下的所有選項都改成啟用
因為js是客戶端的,所以伺服器不可能控制
我一般是用伺服器生成html格式的Excel,然後設置
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "inline;filename=abc.xls");
這樣來下載excel,而且這樣不用修改客戶端的ie設置
㈥ 如何使用nodejs讀寫excel文件
nodejs作為功能強大的後端開發語言,有許多第三方包擴展nodejs能力。讀寫excel文件也有相關的第三方擴展。
本文介紹nodejs下如何通過使用node-xlsx擴展讀寫excel文件。
㈦ JS讀取excel,獲取其中的單元格佔多少行/列
獲取行/列
var colcount=wb.Worksheets(1).UsedRange.Cells.Rows.Count ;
var colcolumn=wb.Worksheets(1).UsedRange.Columns.Count;
讀取本地Excel文件內容的Javascript代碼:
<script type="text/javascript">
function read_excel(){
var filePath="D:\abcd9.com.xls"; //要讀取的xls
var sheet_id=2; //讀取第2個表
var row_start=3; //從第3行開始讀取
var tempStr='';
try{
var oXL = new ActiveXObject("Excel.application"); //創建Excel.Application對象
}catch(err)
{
alert(err);
}
var oWB = oXL.Workbooks.open(filePath);
oWB.worksheets(sheet_id).select();
var oSheet = oWB.ActiveSheet;
var colcount=oXL.Worksheets(sheet_id).UsedRange.Cells.Rows.Count ;
for(var i=row_start;i<=colcount;i++){
if (typeof(oSheet.Cells(i,8).value)=='date'){ //處理第8列部分單元格內容是日期格式時的讀取問題
d= new Date(oSheet.Cells(i,8).value);
temp_time=d.getFullYear()+"-"+(d.getMonth() + 1)+"-"+d.getDate();
}
else
temp_time=$.trim(oSheet.Cells(i,7).value.toString());
tempStr+=($.trim(oSheet.Cells(i,2).value)+" "+$.trim(oSheet.Cells(i,4).value)+" "+$.trim(oSheet.Cells(i,6).value.toString())+" "+temp_time+"\n");
//讀取第2、4、6、8列內容
}
return tempStr; //返回
oXL.Quit();
CollectGarbage();
}
</script>
㈧ 哥們,你好,我在網上找到一段JS代碼可以讀取excel數據,有些地方不懂問一下您
這位仁兄,我建議你先去w3school去看下基礎,先幫你改了
<script language="javascript" type="text/javascript">
var fileName = "D:\monkeyrunner\debugcase\Address\TestResult.xls";
importXLS(fileName);
function importXLS(fileName)
{
objCon = new ActiveXObject("ADODB.Connection");
objCon.Provider = "Microsoft.Jet.OLEDB.4.0";
objCon.ConnectionString = "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";
objCon.CursorLocation = 1;
objCon.Open;
var strQuery;
var strSheetName = "Sheet1$";
var rsTemp = new ActiveXObject("ADODB.Recordset");
rsTemp = objCon.OpenSchema(20);
㈨ 怎麼用js將excel中的數據讀取後顯示到網頁中的表格
以前讀書的時候絕不會想到會用客戶端腳本來實現這些功能,現在卻一開始就要用上了,而且還覺得挺實用的。
參考《Windows腳本技術》,應該會有一點收獲。
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<script language="javascript" type="text/javascript">
function importXLS(fileName)
{
objCon = new ActiveXObject("ADODB.Connection");
objCon.Provider = "Microsoft.Jet.OLEDB.4.0";
objCon.ConnectionString = "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";
objCon.CursorLocation = 1;
objCon.Open;
var strQuery;
//Get the SheetName
var strSheetName = "Sheet1$";
var rsTemp = new ActiveXObject("ADODB.Recordset");
rsTemp = objCon.OpenSchema(20);
if(!rsTemp.EOF)
strSheetName = rsTemp.Fields("Table_Name").Value;
rsTemp = null
rsExcel = new ActiveXObject("ADODB.Recordset");
strQuery = "SELECT * FROM [" + strSheetName + "]";
rsExcel.ActiveConnection = objCon;
rsExcel.Open(strQuery);
while(!rsExcel.EOF)
{
for(i = 0;i<rsExcel.Fields.Count;++i)
{
alert(rsExcel.Fields(i).value);
}
rsExcel.MoveNext;
}
// Close the connection and dispose the file
objCon.Close;
objCon =null;
rsExcel = null;
}
</script>
</head>
<body>
<input type="file" id="f" />
<input type="button" id="b" value="import" onclick="if(f.value=='')alert('請選擇xls文件');else importXLS(f.value)" />
</body>
</html>
trackback:http://hi..com/netcorner/blog/item/4c35a818788f670635fa41d3.html
通過Javascript操作Excel
function AutomateExcel()
{
// Start Excel and get Application object.
var oXL = new ActiveXObject("Excel.Application");
oXL.Visible = true;
// Get a new workbook.
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
// Add table headers going cell by cell.
oSheet.Cells(1, 1).Value = "First Name";
oSheet.Cells(1, 2).Value = "Last Name";
oSheet.Cells(1, 3).Value = "Full Name";
oSheet.Cells(1, 4).Value = "Salary";
// Format A1:D1 as bold, vertical alignment = center.
oSheet.Range("A1", "D1").Font.Bold = true;
oSheet.Range("A1", "D1").VerticalAlignment = -4108; //xlVAlignCenter
// Create an array to set multiple values at once.
// Fill A2:B6 with an array of values (from VBScript).
oSheet.Range("A2", "B6").Value = CreateNamesArray();
// Fill C2:C6 with a relative formula (=A2 & " " & B2).
var oRng = oSheet.Range("C2", "C6");
oRng.Formula = "=A2 & " " & B2";
// Fill D2:D6 with a formula(=RAND()*100000) and apply format.
oRng = oSheet.Range("D2", "D6");
oRng.Formula = "=RAND()*100000";
oRng.NumberFormat = "$0.00";
// AutoFit columns A:D.
oRng = oSheet.Range("A1", "D1");
oRng.EntireColumn.AutoFit();
// Manipulate a variable number of columns for Quarterly Sales Data.
DispalyQuarterlySales(oSheet);
// Make sure Excel is visible and give the user control
// of Excel's lifetime.
oXL.Visible = true;
oXL.UserControl = true;
}
<HTML>
<HEAD>
<TITLE>將頁面中指定表格的數據導入到Excel中</TITLE>
<SCRIPT LANGUAGE="javascript">
<!--
function AutomateExcel()
{
var oXL = new ActiveXObject("Excel.Application"); //創建應該對象
var oWB = oXL.Workbooks.Add();//新建一個Excel工作簿
var oSheet = oWB.ActiveSheet;//指定要寫入內容的工作表為活動工作表
var table = document.all.data;//指定要寫入的數據源的id
var hang = table.rows.length;//取數據源行數
var lie = table.rows(0).cells.length;//取數據源列數
// Add table headers going cell by cell.
for (i=0;i<hang;i++){//在Excel中寫行
for (j=0;j<lie;j++){//在Excel中寫列
//定義格式
oSheet.Cells(i+1,j+1).NumberFormatLocal = "@";
//!!!!!!!上面這一句是將單元格的格式定義為文本
oSheet.Cells(i+1,j+1).Font.Bold = true;//加粗
oSheet.Cells(i+1,j+1).Font.Size = 10;//字體大小
oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;//向單元格寫入值
}
}
oXL.Visible = true;
oXL.UserControl = true;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<table border="0" width="300" id="data" bgcolor="black" cellspacing="1">
<tr bgcolor="white">
<td>編號</td>
<td>姓名</td>
<td>年齡</td>
<td>性別</td>
</tr>
<tr bgcolor="white">
<td>0001</td>
<td>張三</td>
<td>22</td>
<td>女</td>
</tr>
<tr bgcolor="white">
<td>0002</td>
<td>李四</td>
<td>23</td>
<td>男</td>
</tr>
</table>
<input type="button" name="out_excel" onclick="AutomateExcel();" value="導出到excel">
</BODY>
</HTML>
以前讀書的時候絕不會想到會用客戶端腳本來實現這些功能,現在卻一開始就要用上了,而且還覺得挺實用的。
參考《Windows腳本技術》,應該會有一點收獲。
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<script language="javascript" type="text/javascript">
function importXLS(fileName)
{
objCon = new ActiveXObject("ADODB.Connection");
objCon.Provider = "Microsoft.Jet.OLEDB.4.0";
objCon.ConnectionString = "Data Source=" + fileName + ";Extended Properties=Excel 8.0;";
objCon.CursorLocation = 1;
objCon.Open;
var strQuery;
//Get the SheetName
var strSheetName = "Sheet1$";
var rsTemp = new ActiveXObject("ADODB.Recordset");
rsTemp = objCon.OpenSchema(20);
if(!rsTemp.EOF)
strSheetName = rsTemp.Fields("Table_Name").Value;
rsTemp = null
rsExcel = new ActiveXObject("ADODB.Recordset");
strQuery = "SELECT * FROM [" + strSheetName + "]";
rsExcel.ActiveConnection = objCon;
rsExcel.Open(strQuery);
while(!rsExcel.EOF)
{
for(i = 0;i<rsExcel.Fields.Count;++i)
{
alert(rsExcel.Fields(i).value);
}
rsExcel.MoveNext;
}
// Close the connection and dispose the file
objCon.Close;
objCon =null;
rsExcel = null;
}
</script>
</head>
<body>
<input type="file" id="f" />
<input type="button" id="b" value="import" onclick="if(f.value=='')alert('請選擇xls文件');else importXLS(f.value)" />
</body>
</html>
trackback:http://hi..com/netcorner/blog/item/4c35a818788f670635fa41d3.html
通過Javascript操作Excel
function AutomateExcel()
{
// Start Excel and get Application object.
var oXL = new ActiveXObject("Excel.Application");
oXL.Visible = true;
// Get a new workbook.
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
// Add table headers going cell by cell.
oSheet.Cells(1, 1).Value = "First Name";
oSheet.Cells(1, 2).Value = "Last Name";
oSheet.Cells(1, 3).Value = "Full Name";
oSheet.Cells(1, 4).Value = "Salary";
// Format A1:D1 as bold, vertical alignment = center.
oSheet.Range("A1", "D1").Font.Bold = true;
oSheet.Range("A1", "D1").VerticalAlignment = -4108; //xlVAlignCenter
// Create an array to set multiple values at once.
// Fill A2:B6 with an array of values (from VBScript).
oSheet.Range("A2", "B6").Value = CreateNamesArray();
// Fill C2:C6 with a relative formula (=A2 & " " & B2).
var oRng = oSheet.Range("C2", "C6");
oRng.Formula = "=A2 & " " & B2";
// Fill D2:D6 with a formula(=RAND()*100000) and apply format.
oRng = oSheet.Range("D2", "D6");
oRng.Formula = "=RAND()*100000";
oRng.NumberFormat = "$0.00";
// AutoFit columns A:D.
oRng = oSheet.Range("A1", "D1");
oRng.EntireColumn.AutoFit();
// Manipulate a variable number of columns for Quarterly Sales Data.
DispalyQuarterlySales(oSheet);
// Make sure Excel is visible and give the user control
// of Excel's lifetime.
oXL.Visible = true;
oXL.UserControl = true;
}
<HTML>
<HEAD>
<TITLE>將頁面中指定表格的數據導入到Excel中</TITLE>
<SCRIPT LANGUAGE="javascript">
<!--
function AutomateExcel()
{
var oXL = new ActiveXObject("Excel.Application"); //創建應該對象
var oWB = oXL.Workbooks.Add();//新建一個Excel工作簿
var oSheet = oWB.ActiveSheet;//指定要寫入內容的工作表為活動工作表
var table = document.all.data;//指定要寫入的數據源的id
var hang = table.rows.length;//取數據源行數
var lie = table.rows(0).cells.length;//取數據源列數
// Add table headers going cell by cell.
for (i=0;i<hang;i++){//在Excel中寫行
for (j=0;j<lie;j++){//在Excel中寫列
//定義格式
oSheet.Cells(i+1,j+1).NumberFormatLocal = "@";
//!!!!!!!上面這一句是將單元格的格式定義為文本
oSheet.Cells(i+1,j+1).Font.Bold = true;//加粗
oSheet.Cells(i+1,j+1).Font.Size = 10;//字體大小
oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;//向單元格寫入值
}
}
oXL.Visible = true;
oXL.UserControl = true;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<table border="0" width="300" id="data" bgcolor="black" cellspacing="1">
<tr bgcolor="white">
<td>編號</td>
<td>姓名</td>
<td>年齡</td>
<td>性別</td>
</tr>
<tr bgcolor="white">
<td>0001</td>
<td>張三</td>
<td>22</td>
<td>女</td>
</tr>
<tr bgcolor="white">
<td>0002</td>
<td>李四</td>
<td>23</td>
<td>男</td>
</tr>
</table>
<input type="button" name="out_excel" onclick="AutomateExcel();" value="導出到excel">
</BODY>
</HTML>