Excel处理

本文介绍了两种前端文件上传的方法,一种是通过客户端控件实现,另一种是利用服务器控件完成。并详细讲解了如何使用JavaScript和jQuery进行文件上传、获取Excel文件内容以及将数据导入Excel的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载:https://www.cnblogs.com/cang12138/p/5606130.html

上面的博友已经讲的很清楚了,但是我们在服务端是获取不到前端上传文件的绝对路径的(因为新浏览器有安全机制限制问题),也就是指定不了本地文件,所以我们一般把文件上传到服务器,再获取Excel里面的内容,这样我们可以防止导入出错时候方便查找,并且有一个备份,一般处理完后我们再选择是否把服务器的文件给删除掉

 

1.使用客户端控件实现上传(记住不是服务器控件)

上传代码如下,不懂可以参考https://www.cnblogs.com/cang12138/p/5606130.html

 

HTML代码如下(easyui的file控件好像不行,有兴趣的小伙伴可以尝试一下):

<div id="Execl">
        <form id="form" action="../Handlers/AttendanceManagerHandler.ashx" method="post" enctype="multipart/form-data">
            <input type="file"  id="file1" name="file" onchange="fileOnchange()" />
            <input id="selSheesName" name="selSheesName">  
            <a id="btnUpload" href="#" class="easyui-linkbutton" onclick="Upload()">导入</a>  
        </form>
 </div>

 

jquery代码如下:

 

function fileOnchange() {
    var formData = new FormData($('#form')[0]);
    $.ajax({
        type: 'post',
        url: "../Handlers/AttendanceManagerHandler.ashx?funType=getsheetsname",
        data: formData,
        cache: false,
        processData: false,//不处理数据
        contentType: false,//不设置内容类型
        dataType:"json",
    }).success(function (response) {
        //这个是easyui前端控件赋值方法
        $('#selSheesName').combobox("loadData", response);
    }).error(function () {
        alert("下拉框获取失败!!!");
    });
}
FormData解释参考这里https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects
ajax的参数问题参考http://www.w3school.com.cn/jquery/ajax_ajax.asp

一般处理程序代码如下:
//获取前端传输过来的文件
 HttpFileCollection files = HttpContext.Current.Request.Files;
//获取文件的访问权
HttpPostedFile posted = files[0];
//获取服务器路径
string TempPath = System.IO.Path.GetTempPath();
//拼接成服务器的绝对路径
string filePath = TempPath + files[0].FileName;
 //上传文件到服务器
posted.SaveAs(filePath);

这里面关键是要获取文件控件的访问权问题,只有这样才能上传文件

 至于后面的导入,参考https://www.cnblogs.com/cang12138/p/5606130.html

 

2.使用服务器控件完成Excel的导入

  (1)上传文件

 

 

 

  (2)创建连接   connStr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;HDR=Yes;\"",filePath);这个连接串,全部支持,不需要判断扩展名是.xls  .xlsx

 

  (3)读取excel里面的内容

 

3.把数据导入到excel中,一般是我们读取我们的数据集,并把读取的数据给服务器上excel文件,再用a标签的href指向服务器地址,让客户点击标签另存到本地(代码:https://www.cnblogs.com/cang12138/p/5606130.html)

 

 

 

第三方插件的导入导出,以后有需求再说吧  未完待续。。。

转载于:https://www.cnblogs.com/zjdbk/p/9376017.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值