私はtoJavaScriptが新しくなっています。 JavaScriptを使用してExcelファイルを読み込もうとしています。javascriptを使用してパスから直接Excelファイルを読み取ることができません
ブラウズボタンから選択したファイルを読み込み、以下のコードを使用して、私は、オブジェクトからファイルを取得しています「FileReaderの」、私は直接URLファイルを挿入する必要があり、コード:
<script type="text/javascript">
function myFunction()
{
var x = document.getElementById("mySelect").value;
document.getElementById("demo").innerHTML = x;
}
$(function() {
$("#input").on("change", function()
{
var excelFile,
fileReader = new FileReader();
$("#result").hide();
fileReader.onload = function (e) {
var buffer = new Uint8Array(fileReader.result);
var workbook = new $.ig.excel.Workbook("C:\\xampp\\htdocs\\TrustAgents.xlsx");
$.ig.excel.Workbook.load(buffer, function (workbook)
{
var column, row, newRow, cellValue, columnIndex, i,
worksheet = workbook.worksheets(0),
columnsNumber = 0,
gridColumns = [],
data = [],
worksheetRowsCount;
// Both the columns and rows in the worksheet are lazily created and because of this most of the time worksheet.columns().count() will return 0
// So to get the number of columns we read the values in the first row and count. When value is null we stop counting columns:
while (worksheet.rows(0).getCellValue(columnsNumber)) {
columnsNumber++;
}
// Iterating through cells in first row and use the cell text as key and header text for the grid columns
for (columnIndex = 0; columnIndex < columnsNumber; columnIndex++) {
column = worksheet.rows(0).getCellText(columnIndex);
gridColumns.push({ headerText: column, key: column });
}
// We start iterating from 1, because we already read the first row to build the gridColumns array above
// We use each cell value and add it to json array, which will be used as dataSource for the grid
for (i = 1, worksheetRowsCount = worksheet.rows().count() ; i < worksheetRowsCount; i++) {
newRow = {};
row = worksheet.rows(i);
for (columnIndex = 0; columnIndex < columnsNumber; columnIndex++) {
cellValue = row.getCellText(columnIndex);
newRow[gridColumns[columnIndex].key] = cellValue;
}
data.push(newRow);
}
// we can also skip passing the gridColumns use autoGenerateColumns = true, or modify the gridColumns array
createGrid(data, gridColumns);
}, function (error) {
$("#result").text("The excel file is corrupted.");
$("#result").show(1000);
});
}
if (this.files.length > 0)
{
excelFile = this.files[0];
if (excelFile.type === "application/vnd.ms-excel" || excelFile.type === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" || (excelFile.type === "" && (excelFile.name.endsWith("xls") || excelFile.name.endsWith("xlsx"))))
{
fileReader.readAsArrayBuffer(excelFile);
}
else
{
$("#result").text("The format of the file you have selected is not supported. Please select a valid Excel file ('.xls, *.xlsx').");
$("#result").show(1000);
}
}
})
})
function createGrid(data, gridColumns) {
if ($("#grid1").data("igGrid") !== undefined) {
$("#grid1").igGrid("destroy");
}
$("#grid1").igGrid({
columns: gridColumns,
autoGenerateColumns: true,
dataSource: data,
width: "100%"
});
}
</script>
私はあなたがignite-uiライブラリを使用していると仮定しています。また、あなたが正確に得ているエラーは何ですか?私はあなたの質問からそれを理解することはできません。 – Sid
はい私はignite-uiライブラリを使用して、すぐにexcelファイルのurlを置く必要があります – wisam
@wesam "urlファイルを直接"したいのはどういう意味ですか?ブラウズボタンではファイルシステムからファイルを選択できませんか、ファイルシステムからではなく外部ソースからファイルをロードしますか? –