Javascript 是否使用Jquery将一个div内容单独的行和单元格导出到Excel?
我正在尝试使用Jquery导出div数据。但价值来自同一个细胞 下面是示例图像: 我需要以下示例图像: 有东西漏了我的密码,请帮帮我 JS:Javascript 是否使用Jquery将一个div内容单独的行和单元格导出到Excel?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试使用Jquery导出div数据。但价值来自同一个细胞 下面是示例图像: 我需要以下示例图像: 有东西漏了我的密码,请帮帮我 JS: var csvContent=“名字、中间名、姓氏”;//CSV文件的标题 var dataElements=document.getElementsByClassName(“示例”); 对于(var i=0;i{ 返回$(sample).find('span>.labelValue').map((_,field)=>field.innerText.g
var csvContent=“名字、中间名、姓氏”;//CSV文件的标题
var dataElements=document.getElementsByClassName(“示例”);
对于(var i=0;i 设a=$(“您有两个问题。第一个问题是您用于创建Blob的语法无效。您使用的是表达式,但您需要实际提供数据。第二个问题是您试图以纯文本创建XLS文件,而该文件格式不是这样工作的
实现这一点的最简单方法是创建一个CSV文件,该文件的格式与您创建字符串的方式相同,您只需使用换行符分隔CSV的每一行
最后,在使用jQuery时,可以通过使用嵌套的map()
调用为输出的每一行创建一个数组来简化检索数据的语法。请尝试以下操作:
let csv=$('.sample').map((i,sample)=>{
返回$(sample).find('span>.labelValue').map((_,field)=>field.innerText.get().join(',');
}).get();
csv.unshift('First Name,Middle Name,Last Name');//添加标题
创建csvfile(csv);
函数createCsvFile(csvArray){
let file=new Blob([csvArray.join('\r\n')]),{type:“application/csv”});
让url=url.createObjectURL(文件);
设a=$(”
请注意,我在JSFIDLE示例中添加了多行代码,以便您可以看到它的可扩展性。您有两个问题。第一个问题是用于创建Blob的语法无效。您使用的是表达式,但您需要实际提供数据。第二个问题是尝试以纯文本形式创建XLS文件,而这不是file格式有效
实现这一点的最简单方法是创建一个CSV文件,该文件的格式与您创建字符串的方式相同,您只需使用换行符分隔CSV的每一行
最后,在使用jQuery时,可以通过使用嵌套的map()
调用为输出的每一行创建一个数组来简化检索数据的语法。请尝试以下操作:
let csv=$('.sample').map((i,sample)=>{
返回$(sample).find('span>.labelValue').map((_,field)=>field.innerText.get().join(',');
}).get();
csv.unshift('First Name,Middle Name,Last Name');//添加标题
创建csvfile(csv);
函数createCsvFile(csvArray){
let file=new Blob([csvArray.join('\r\n')]),{type:“application/csv”});
让url=url.createObjectURL(文件);
设a=$(”
请注意,我在JSFIDLE示例中添加了多行,这样您就可以看到它的可扩展性了。谢谢@Rory McCrossanOne更多疑问人口统计是一个分区名称我想要这个名称是excel工作表名称请帮助我。将文件名替换为人口统计谢谢@Rory McCrossanOne更多疑问人口统计是一个分区n名称我想要此名称是excel工作表名称请帮助我。将文件名替换为人口统计这是否回答了您的问题?这是否回答了您的问题?
var csvContent= "First Name, Middle Name, Last Name"; // Headers for CSV file
var dataElements = document.getElementsByClassName("sample");
for (var i = 0; i < dataElements.length; i++) { // we iterate through all data entries
// If your ids per entry (one person) are fix (which is a bad idea)
var entryLineCsv = document.getElementById("kaf70").innerHTML + ","
+ document.getElementById("kaf71").innerHTML + ","
+document.getElementById("kaf72").innerHTML + ","; // here we got on csv line
createCsvFile(entryLineCsv);
}
function createCsvFile(addEntryLineIoCsv) {
let file = new Blob([csvContent = csvContent + addEntryLineIoCsv], { type: "application/vnd.ms-excel" });
let url = URL.createObjectURL(file);
let a = $("<a />", {
href: url,
download: "filename.xls"
}).appendTo("body").get(0).click();
}
div class="losSection" id="secReviewerDemographics"><div class="losSectionHeader"><div class="losSectionSel losSectionTitle misign" data-originaltitle="Demographics">Demographics</div></div><div id="cpC_kf_secview_50" class="losSectionView"><div>
<div id="ExportDetails" class="sample">
<div class="tabularView">
<input type="hidden" name="kaf_78" id="kaf_78" aria-label="kaf_78" value="01" class="._shCE">
<div id="cpC_ctl73" class="tabularTbl flex-row start-xs">
<div class="pad1x flex-row leftLblMode">
<div class="pad1x flex-col-xs-12 flex-col-sm-6">
<div style="">
<label for="kaf_70" id="klb_70" class="input-control-label input-control-label input-control-label input-control-label input-control-label input-control-label">First Name
</label>
</div>
</div>
<div class="pad1x flex-col-xs-12 flex-col-sm-6">
<div class="labelValueField">
<span class="labelValue" name="kaf_70" id="kaf_70">
<span class="labelValue" name="kaf_70" id="kaf70" aria-label="Applicant First Name">NAMA</span>
</span>
</div>
</div>
</div>
<div class="pad1x flex-row leftLblMode">
<div class="pad1x flex-col-xs-12 flex-col-sm-6">
<div style="">
<label for="kaf_71" id="klb_71" class="input-control-label input-control-label input-control-label input-control-label input-control-label input-control-label">Middle Name</label>
</div>
</div>
<div class="pad1x flex-col-xs-12 flex-col-sm-6">
<div class="labelValueField">
<span class="labelValue" name="kaf_71" id="kaf_71">
<span class="labelValue" name="kaf_71" id="kaf71" aria-label="Applicant Middle Name">VEENESH</span>
</span>
</div>
</div>
</div>
<div class="pad1x flex-row leftLblMode">
<div class="pad1x flex-col-xs-12 flex-col-sm-6">
<div style="">
<label for="kaf_72" id="klb_72" class="input-control-label input-control-label input-control-label input-control-label input-control-label input-control-label">Last Name
</label>
</div>
</div>
<div class="pad1x flex-col-xs-12 flex-col-sm-6">
<div class="labelValueField">
<span class="labelValue" name="kaf_72" id="kaf_72">
<span class="labelValue" name="kaf_72" id="kaf72" aria-label="Applicant Last Name">KUMAR</span>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
<button id="ExportToExcel" onclick="exportF(this)">Export To Excel</button>