添加将 Excel 数据粘贴到 Django 表单中的功能

2024-01-10

我目前有一个 Django 表单,它有 N 行 x 12 列的表格形状的文本框。用户可以一次填充此表单一个文本框:

[________][________][________][________][________][________][________][________][________][________][________][________][________][________][________][________][________ ][________][________][________][________][________][________][________][________][________][________]

注意:该表仅显示 9 列,但我使用的实际表格是 12 列。

我想添加用户复制 Excel 中的一系列单元格并将其粘贴到表单中以填充相应单元格的功能。

我尝试模仿我已成功创建的方法的语法,该方法能够在单击表单上的清除按钮后清除所有数据字段:

$(document).on("click", "#clear_button", function() {
    $("input[type=text]").val("");
});

来自 Excel 的单行数据是用制表符分隔的,据我所知,这大约是:

$(document).on("paste", "input[type=text]", function(){
    var input_id = $(this).attr("id");
    var value = $(this).val();
    var value_split_array = value.split("\t");
    var row_selected = input_id.match(/([-\w]+)_\d+/)[1];
    var num = parseInt(input_id.match(/[-\w]+_(\d+)/)[1], 10);
    for (i=num; i < value_split_array.length-1 || i < 12; i++) {
        $("[id="+row_selected+"_"+i+"]").val(value_split_array[i-num]);
    }
});

我以为这会起作用,但不幸的是它没有。想知道是否有人有任何建议。


粘贴事件在数据粘贴到输入字段之前触发,因此您无法使用以下命令获取粘贴的文本$(this).val()。您需要访问事件对象的 ClipboardData 属性。

由于 jQuery 的事件对象中不包含 ClipboardData,因此您需要从 OriginalEvent 字段中获取它。

您的事件处理程序将如下所示。

function (event) {
    var input_id = $(this).attr("id");
    var value;
    if (event.originalEvent.clipboardData) { // Firefox, Chrome, etc.
        value = event.originalEvent.clipboardData.getData('text/plain');
    } else if (window.clipboardData) { // IE
        value = window.clipboardData.getData("Text")
    } else {
        // clipboard is not available in this browser
        return;
    }
    /* ... */
    event.preventDefault(); // prevent the original paste
}

为了更加稳健,您应该在继续之前查询 ClipboardData 以确保它具有文本/纯文本表示形式。

在IE中,它好像 http://msdn.microsoft.com/en-us/library/ie/ms535220%28v=vs.85%29.aspx这就是读取剪贴板的方式。

var value = window.clipboardData.getData("Text");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加将 Excel 数据粘贴到 Django 表单中的功能 的相关文章

随机推荐

  • TS2307:在 TypeScript 上导入 Angular2 时找不到模块“angular2/core”

    大家好 我有一点 Angular 1 的背景 我正在学习 Angular 2 对于从 Angular 1 开始 唯一的依赖是添加角度源angular js or angular min js 当通过 script 标签尝试使用 Angula
  • 什么是概念?

    我听说过所有关于 C 0x 不再有概念的新消息 在 上 但我不知道它们是什么 有人可以向我解释一下吗 概念是一种通用编程功能 允许编写模板代码的人指定类型参数需要满足的要求 例如 某些集合类型需要集合的类型参数来定义 这有点过于简单化 但我
  • 原则 2 选择计数 groupBy

    我正在尝试检索许多具有唯一 uid 的行 qb gt select COUNT as cnt gt from type c gt groupBy c organization c process role c domain c year g
  • 错误:找不到 ActivitySplashBinding

    我正在尝试检查用户是否登录 如果是 则显示特定视图组 否则显示不同的视图组 为了检查用户是否登录 我从共享首选项中获取用户 登录时用户保存在共享首选项中 让我展示我的代码 启动视图模型 public class SplashViewMode
  • 将自定义道具传递给react-router v4中的路由器组件

    我正在使用 React Router 创建一个多页面应用程序 我的主要组成部分是
  • 使用 Swift 向下循环移动 SKSpriteNode

    使用 Swift 和 SpriteKit 我想以螺旋模式移动 SKSpritenode 但没有找到合适的资源来帮助我开始 更准确地说 我想以向下循环的方式移动精灵节点 我检查了一系列 SKActions 但由于它们不是并行执行的 因此与 m
  • 以 PHP5 中的数组形式返回当前日历周的日期

    我如何组合一个 PHP5 函数来查找当前日历周并以数组形式返回一周中每一天的日期 从星期一开始 例如 如果该函数今天运行 2010 年 2 月 25 日星期四 该函数将返回一个如下数组 0 gt Mon Feb 22 2010 br 1 g
  • 为什么 Unicode 字符在数据库中显示正确,但显示为 ?当通过 Hibernate 在 Java 中打印时?

    我正在编写一个 web 应用程序 并使用 Hibernate 3 5 与 MySQL 交互 使用 sukutoppu 作为我的测试字符串 我可以输入该字符串并查看它是否已正确保存到数据库中 但是 当我后来从数据库中提取该值并将其作为字符串打
  • C# 使用 Linq 连接 3 个列表 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想加入 3 个具有以下格式的列表
  • Wireshark 中看到的数据报,Qt UDP Socket 未接收到

    我正在编写一个 Qt 5 6 应用程序 通过 UDP 套接字与 FPGA 进行通信 数据包以 2 KHz 的速率传输到 PC 所有数据包大小相同 1272 字节 Wireshark 显示数据包正在发送 并且 UDP 标头符合预期 问题是 我
  • SmartGWT GWT 客户端服务器架构

    我们计划使用智能GWT GWT和相关框架用于客户端丰富的接口 以及在服务器端返回JSON数据的Spring MVC 作为调查是否符合我们要求的一部分 需要回答以下问题 在不使用任何框架的情况下从头开始构建 GWT 应用程序需要付出大量努力才
  • 使用 DbSet 应用 OrderBy

    我正在尝试使用通用存储库实现分页和排序 如何在 DbSet 中将主键列作为默认按列排序 DbSet Context Set
  • 获取唤醒我的 Activity 的 Intent

    我正在开发一个包含广播接收器的应用程序 广播接收者在 onReceive 上设置一个通知 其中包含一个待处理的 Intent Intent updateHistoryIntent new Intent this NotificationsH
  • IntelliJ 的“UML 支持”插件

    我肯定错过了什么 我在读本文 https www jetbrains com idea help working with diagrams html它说有一个名为 UML Support 的插件默认启用 我没有它 所以我转到 首选项 gt
  • 如何对 HTML 标记属性使用多行值? (即如何转义换行符?)

    如何在 HTML 标记属性中包含换行符 例如 a href somepage html some link a Edit 抱歉 例子不好 如果标签碰巧不在 javascript 中怎么办 比如说
  • 类型 'K' 不能用于索引类型 '{ [key in keyof K]: V; }'.ts(2536)

    我想创建一个从自定义对象类型返回新对象的方法 type K represent the type of key in an object type V represent the type of value in an object cla
  • 使用unix终端解析XML

    有时我需要快速从 XML 文件中提取一些任意数据以放入 CSV 格式 在 Unix 终端中执行此操作的最佳实践是什么 我想要一些代码示例 那么例如我怎样才能解决以下问题 XML 输入示例
  • 分析递归算法 T(n) = T(n - 1) + T(n - 2) + T(n -3)?

    于是 有人发了这个question https stackoverflow com questions 17239861 how would i get the order of algorithm tn tn 1tn 2 tn 3 com
  • 对象当前正在其他地方使用

    我收到此错误 看起来是因为不同的线程正在访问同一个 Bitmap 对象 然而我到处都使用锁 public class MySingleInstanceClass private Object locker new Object privat
  • 添加将 Excel 数据粘贴到 Django 表单中的功能

    我目前有一个 Django 表单 它有 N 行 x 12 列的表格形状的文本框 用户可以一次填充此表单一个文本框 注意 该表仅显示 9 列 但我使用的实际表格是 12 列