1.在批量导入数据里:第一步下载一个word文档模板,用户可以根据这个worm文档模板的要求去填写数据,填学好数据之后保存worm文档
2.在页面选择到word文档保存到from表单中,通过ajaxSubmit()方法提交from表单的方式将word文档提交到控制器中,在控制器中创建一个方法接收文档和处理文档。
3.在方法里通过处理传递过来的word文件,先获取文件的名称FileName,分割文件名称获取文件的原始名称,通过获取的文件名称获取到文件的扩展名,通过文件的扩展名可以判断一下传过来的文件是否是自己指定的某种格式的文档。获取当前系统的时间联合前面获取到的文件扩展名组合新的文件名称,因为时间是不会重复的,所以这样可以得到一个独一无二的新的文件名称。检查一下需要将这个文件保存到的目录是存在,如果这个目录不存在就需要我们去创建这个目录,如果目录存在,则不需要创建目录,直接执行下一阶段的代码。
4.将上面组合的新的文件名称和目录组合成一个文件路径,保存文件 SaveAs()在派生类中重写时,保存上载文件的内容。
5.通过上面获取到的文件扩展名去更改文件的扩展名
- 将文件读取到document中,再将文件转化成HTML文档并保存
7.接下来如果你想将你保存的文件的内容显示到页面上可以让你检查你保存的数据,这时候你可以通过ReadAllText 读取文件内容,返回一个包含所有行的字符串,然后通过正则表达式去分割数据,通过一系列分割可以获取到你需要的内容,将处理好的数据返回到试图,在试图中进行数据回填就可以显示到页面上,当然你得设置一个用于显示数据内容的区域,用于显示内容。
注意:下面代码来源于老师授课内容
一、Form表单
<form id="frmUpWord" action="upload Word" method="post" enctype="multipart/form-data">
<input type="file" name="file" accept=".doc,.docx" onchange="uploadWord()" />
</form>
二、提交from表单和数据回填
function uploadWord() {
var index =
layer.load();//文件加载时显示的加载图标
$("#frmUpWord").ajaxSubmit(function (message) {
layer.close(index);
if (message.State) {
$("#titlesInfor").html(message.Text);//将返回的数据回填到页面显示出来
layer.msg("请检查上传的试题!!!", { icon: 0, skin: "layui-layer-molv" });
} else {
layer.msg(message.Text, {
icon: 0, skin: “layui-layer-molv” });
}
});
}
三、控制器中的方法,处理文件、保存文件、返回数据
public ActionResult Upload Word(HttpPostedFileBase file) {
ReturnJson msg = new ReturnJson();
if (file != null)
{
string FileName =
file.FileName;//获取文件的名称
//主要处理IE浏览器上传的文件名
string[] str =
FileName.Split(’\’);//分割文件名称用数组接收
FileName = str[str.Length - 1];//获取分割出来的文件名的最后一部分
//获取文件的扩展名
string fileExtension = Path.GetExt