- 浏览: 301024 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
masuweng:
如何给新人机会 -
masuweng:
多sql结果集按列合并新结果报表实现方案 -
Ahe:
赞
坚持长跑方能赢 -
masuweng:
好好好
程序员如何更好的了解自己所做的事情 -
小楠人:
laoguan123 写道楼主好,使用过一些excel导入导出 ...
excell导入导出
业务场景:(系统间还没有接口对调,订单号暂时需要线下处理)
线上订单需要线下第三方票据核对之后才能抽取明细对账开票。
根据第三方提供的票据匹配上双方系统的订单号。
全部指标命中的,默认为相等,部分指标命中的为待筛查数据
线上订单需要线下第三方票据核对之后才能抽取明细对账开票。
根据第三方提供的票据匹配上双方系统的订单号。
class Report::Importcsv # 上传csv文件load数据到数据库临时表 def self.import_csv(file_root,table_name='mapping_datas') # xlsx 保存为csv # 上传到路径:/var/lib/mysql-files/ new_table_name = "cope_#{table_name}_#{Time.now.to_i}" create_table_sql = cope_table_sql(new_table_name,table_name) # 创建表数据 ActiveRecord::Base.connection.execute(create_table_sql) # load 写入csv数据 @sql = %Q(LOAD DATA INFILE '#{file_root}' INTO TABLE #{table_name} FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;) ActiveRecord::Base.connection.execute(@sql) end def self.cope_table_sql(new_table_name,table_name) "create table #{new_table_name} select * from #{table_name} where 1=2;" end ################################################ ## 比对mapping ################################################ require 'matrix' def self.mapping_data_test # 等待匹配的数据库订单数据 sql = "select * from mapping_datas" base_a = ActiveRecord::Base.connection.execute(sql) compale_a = base_a.map{|_| _[1..-1].map{|a| b = (a ? a.to_f : 'null') ; b } } aaa = Matrix.columns(compale_a).to_a # 假设excell导入的临时表数据 excell_sql = "select * from cope_mapping_datas_11232131" base_b = ActiveRecord::Base.connection.execute(excell_sql) compale_b = base_b.map{|_| _[1..-1].map{|a| b = (a ? a.to_f : 'null') ; b } } bbb = Matrix.columns(compale_b).to_a # 完全一致的 #ccc = compale_a & compale_b ddd = [] compale_a.each_with_index do |a,i| eee = [] aaa.each_with_index do |_,j| bbb[j].each_with_index do |b,k| if a[j] == b eee << k end end end re = eee.flatten # 获取最大匹配指标的值 h = Hash.new(0) re.each { | v | h.store(v, h[v]+1) } v = h.values.max ind = h.values.index(v) ddd << [{index:i, mapping:h.keys[ind.to_i], size:v}] end return ddd end end
:index => 原数据库id, :mapping => excell入库id, :size => 匹配指标(users.mobile, od.art_no, od.cas, od.package_count)命中个数 [ [{:index=>70, :mapping=>69, :size=>4}], [{:index=>71, :mapping=>70, :size=>4}], [{:index=>72, :mapping=>71, :size=>4}], [{:index=>73, :mapping=>72, :size=>4}], [{:index=>74, :mapping=>73, :size=>4}], [{:index=>75, :mapping=>74, :size=>4}], [{:index=>76, :mapping=>75, :size=>4}], [{:index=>77, :mapping=>76, :size=>4}], [{:index=>78, :mapping=>0, :size=>2}], [{:index=>79, :mapping=>69, :size=>3}], [{:index=>80, :mapping=>0, :size=>2}], [{:index=>81, :mapping=>24, :size=>2}], [{:index=>82, :mapping=>69, :size=>3}], [{:index=>83, :mapping=>75, :size=>2}], [{:index=>84, :mapping=>75, :size=>2}], [{:index=>85, :mapping=>68, :size=>2}], [{:index=>86, :mapping=>0, :size=>2}], [{:index=>87, :mapping=>42, :size=>3}] ]
全部指标命中的,默认为相等,部分指标命中的为待筛查数据
发表评论
-
git仓库创建
2020-09-04 15:33 708推送现有文件夹 cd existing_folder git ... -
puma高并发
2020-08-19 09:31 475nginx突发大量502报错 top看一下,cpu的占用并不高 ... -
searchkick
2019-04-10 11:30 0# 通用查询块(条件) def general_ ... -
两对象同时映射一对一和一对多
2019-02-20 10:14 838class Kpi::Team < Applicat ... -
ruby一些类加载方式
2018-12-21 10:12 564require_dependency 'order/sco ... -
基于ruby的gem remotipart的异步上传文件
2018-12-21 10:11 530针对某一对象保存实例化之前,异步上传图片保存。 gem ' ... -
基于html2canvas的长图分享
2018-12-21 10:11 1156<span class="ui label ... -
rails处理上传读取excell&生成excell
2018-12-20 14:15 970gem 'spreadsheet' gem 'roo', ... -
基于ruby Mechanize的爬虫
2018-12-20 13:09 668def self.sang_carwler ... -
一些常用加密方式
2018-12-20 13:02 730sign = OpenSSL::Digest::SHA256. ... -
ruby 调用restful接口示例
2018-12-20 12:02 926链接参数中添加token def self.query_p ... -
rails错误日志记录
2018-12-19 14:41 759Rails中对日志的处理采用的是“消息-订阅”机制,各部分组件 ... -
railsAPI接收Base64文件
2018-12-18 11:05 1038tmp_dir = " ... -
ruby 调用savon接口示例
2018-12-18 10:51 1017例子一 module Api module Aob ... -
关于国际商城现货展示与购物车的费用设计
2018-11-15 18:34 442关于国际商城现货展示 ... -
基于多线程的全局变量
2018-10-31 19:50 1161def current_nation def ... -
hash最小值过滤算法
2018-10-31 09:52 1085[["数量","包装" ... -
阿里云裸机部署rails运用
2018-10-08 20:33 1384登录阿里云后首先 sudo apt-get update a ... -
打包订单单据发给货代
2018-09-11 15:43 1179pdf&excell&png # rend ... -
基于mini_magick多图片合并/添加水印
2018-07-02 17:44 1707class ImageService requi ...
相关推荐
标题中的“导入Excel数据的插件”指的是一个专门用于帮助用户将Excel电子表格数据导入到其他应用程序或系统中的工具。这种插件通常扩展了软件的功能,使得数据处理更加便捷,尤其适用于需要频繁处理大量结构化数据的...
在Delphi编程环境中,从Excel导入数据是一项常见的需求,尤其在数据分析、报表处理或数据库集成等场景下。本文将详细探讨如何实现这个功能,并提供一个通用的方法。 首先,要完成这个任务,我们需要一个能与Excel...
在导入数据前,Jeecg会进行数据验证,检查数据的合法性,如非空校验、数据类型校验、唯一性校验等,确保导入的数据符合业务规则。 5. **异常处理**: 在导入过程中,如果遇到错误,Jeecg会捕获异常,并生成详细的...
在C#编程环境中,开发Windows Forms应用程序时,我们经常需要处理用户从Excel文件中导入数据的需求。本教程将详细介绍如何实现“从Excel中导入数据并显示在TextBox控件中”的功能,主要涉及以下知识点: 1. **文件...
西门子WINCC与EXCELL的数据处理策略主要涉及如何在两个系统之间进行数据交互和处理。WINCC(SIMATIC HMI WinCC)是西门子的一款人机界面(HMI)软件,主要用于监控自动化系统的数据,而EXCELL则是微软的电子表格应用...
这个“C#Excell导入源代码”提供了一个很好的实例,可以帮助开发者了解并掌握这一技术。 首先,我们需要知道的是.NET Framework或.NET Core提供了对Office组件的支持,其中Microsoft.Office.Interop.Excel库(通常...
Excell教程数据分析实用技巧PPT课件.pptx
标题中的"Excell导入Mongo工具类.rar"表明这是一个与Java编程相关的项目,它提供了一个工具类用于将Excel数据导入MongoDB数据库。MongoDB是一个流行的NoSQL数据库,它以JSON格式的文档存储数据,而非传统的表格结构...
在开发过程中,有时我们需要在VC++环境中实现与Excel的数据交互,即导入和导出数据。本篇文章将详细探讨如何在VC++中实现Excel的导入与导出功能。 首先,要实现这个功能,你需要了解Microsoft Office的自动化接口,...
标题"从DATAGRID中导出数据到EXCELL国外代码"表明我们要讨论的是如何将`DATAGRID`中的数据转换并保存到`EXCEL`文件中。这个过程在许多业务场景下都是必要的,比如报表生成、数据分析和数据备份。下面我们将深入探讨...
Excel教程中的数据分析实用技巧是提高工作效率和数据管理能力的关键。以下是一些重要的Excel数据分析方法: 1. **数据排序技巧**:Excel提供了多种排序方式。例如,你可以快速对多列进行排序,选择要排序的单元格...
在本文中,我们将深入探讨如何使用Visual Studio 2015 (VS2015) 配合QT5库来操作Excel表格,实现数据的导入导出,以及增删功能。同时,我们还会关注如何利用QSS(Qt样式表)进行用户界面的美化。 首先,QT5是一个跨...
将Excel数据相对应的导入数据库指定数据表内、或者新建表中,省去繁琐的SQL语句操作! 也可在线下载备份数据库数据
在C#编程环境中,Microsoft Office Interop 库为我们提供了一个接口来操作Excel文件,这使得开发者能够方便地读取、写入...在实际开发中,可以根据需求进行更复杂的功能定制,例如数据导入导出、图表生成、宏执行等。
在IT行业中,数据处理是一项至关重要的任务,尤其是在大数据时代,数据的导入导出能力成为了衡量一个系统灵活性的重要标准。PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发领域,它有着丰富的库和工具来处理...
在探讨“VBA由图表获取数据源”这一主题时,我们深入分析VBA(Visual Basic for Applications)在Microsoft Office应用程序中的强大功能,特别是在Excel中如何利用VBA代码从图表中提取数据源信息。这一能力对于自动...
C#中DataGridView和Excel数据的相互导入方法 C#中DataGridView控件和Excel表格是两个常用的数据存储和展示工具。它们之间的数据交换是非常重要的。本文将介绍C#中DataGridView和Excel数据的相互导入方法。 ...
在电子工程和嵌入式系统开发中,常常需要与计算机进行数据交互,其中串行通信是一种常见的接口方式。本文将详细讲解如何使用EXCEL来记录串口数据,并结合单片机AVR通过UART(通用异步收发传输器)发送的数据进行实际...
在Excel表格中添加数据标签是一项重要的数据可视化技巧,它能够帮助读者快速地了解图表中的具体数值,无需依赖坐标轴上的刻度。以下是如何在Excel中为图表添加数据标签的详细步骤,以及一些相关的最佳实践。 首先,...
Excel教程是针对初学者设计的一套详尽的学习资源,旨在帮助用户快速掌握Excel的基础操作,提升数据管理和分析能力。在Excel中,你可以进行各种数据处理、制作报表、数据分析,甚至是复杂的函数运算。以下是一些核心...