如何将我的视图 table 转换为 excel 格式
how to convert my view table into excel format
我是 rails ruby 的新手,我想将我的视图 table 导出为 excel 格式,我已经尝试了很多次但我不能能够导出视图 table。 我的数据库中有一个视图 (Employee_Information),所有数据都显示在 view.html.erb 页面中,Employee_Information 视图没有特定模型。 我已遵循本教程“http://railscasts.com/episodes/362-exporting-csv-and-excel”,但我本教程借助模型将数据从视图 table 导出到 excel,我想不使用模型。
**excel_file.html.erb**
`<table border=1>
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Gender</th>
<th>Date of birth</th>
<th>Email</th>
<th>Marital status</th>
<th>Father Name</th>
<th>Spouse Name</th>
<th>Contact</th>
<th>Employee Address</th>
<th>Account Number</th>
<th>IFSC Code</th>
<th>PAN Number</th>
<th>Client Name</th>
<th>Designation</th>
<th>Employee Type</th>
<th>Status</th>
<th>Joining date</th>
<th>End date</th>
<th>Offer CTC</th>
<th>Client Address</th>
</tr>
<% @employees.each do |emp| %>
<tr>
<th><%= emp['employee_id'] %></th>
<th><%= emp['full_name'] %></th>
<th><%= emp['gender'] %></th>
<th><%= emp['dob_date'] %></th>
<th><%= emp['email'] %></th>
<th><%= emp['married_status'] %></th>
<th> <%= emp['father_name'] %></th>
<th><%= emp['spouse_name'] %></th>
<th><%= emp['contact_phone'] %></th>
<th><%= emp['candidate_address2'] %></th>
<th><%= emp['bank_ac'] %></th>
<th><%= emp['bank_ifsc'] %></th>
<th><%= emp['pan_number'] %></th>
<th><%= emp['company_name'] %></th>
<th><%= emp['designation'] %></th>
<th>
<% if emp['employee_type'] == 0 %>
Internal Employee
<% elsif emp['employee_type'] == 1 || emp['employee_type'] == 2 || emp['employee_type'] == 3 %>
Contract Consultant Employee
<% elsif emp['employee_type'] == 4 %>
Permanent Consultant Employee
<% elseif emp['employee_type'] == 5 %>
Past Employee
<% end %>
</th>
<th>
<% if emp['status'] == 0 %>
Pending
<% elsif emp['status'] == 1 %>
Approved
<% elsif emp['status'] == 2 %>
Cancelled
<% elsif emp['status'] == 3 %>
Accepted
<% elsif emp['status'] == 4 %>
Rejected
<% elsif emp['status'] == 5 %>
Onboarded
<% elsif emp['status'] == 6 %>
Offboarded
<% end %>
</th>
<th><%= emp['joining_date'] %></th>
<th><%= emp['work_end_date'] %></th>
<th><%= emp['ctc'] %></th>
<th><%= emp['client_address2']%></th>
</tr>
<% end %>
</table>
<br><br>`
**hr_controller.rb**`def excel_file
@employees = MysqlConnection.connection.select_all("SELECT * FROM Employee_Information where employee_type IN(0)")
#@employees = MysqlConnection.connection.select_all("SELECT * FROM Employee_Information where employee_type IN(1,2,3)")
respond_to do |format|
format.html
format.csv { send_data @employees.to_csv }
end
end`
**application.rb**
require File.expand_path('../boot', __FILE__)
# add HR role
require "csv"
我已经在 lib 文件夹中创建了一个文件模块 "employee_information.rb"
module EmployeeInformation
def self.to_csv(options = {})
CSV.generate(options) do |csv|
csv << column_names
all.each do |product|
csv << product.attributes.values_at(*column_names)
end
end
end end
这一定是一个视图吗table?除非你把它做成某种形式,否则没有办法不使用 javascript 解析 DOM(或者更确切地说访问 DOM 中的所有元素)并获取值和使用解析后的 DOM 中的信息向控制器发出请求。如果您可以制作某种提交表单,那么您可以更轻松地将此信息导出到 excel。无论哪种方式,如果没有某种模型,真的没有另一种方法可以做到这一点。
我是 rails ruby 的新手,我想将我的视图 table 导出为 excel 格式,我已经尝试了很多次但我不能能够导出视图 table。 我的数据库中有一个视图 (Employee_Information),所有数据都显示在 view.html.erb 页面中,Employee_Information 视图没有特定模型。 我已遵循本教程“http://railscasts.com/episodes/362-exporting-csv-and-excel”,但我本教程借助模型将数据从视图 table 导出到 excel,我想不使用模型。
**excel_file.html.erb**
`<table border=1>
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Gender</th>
<th>Date of birth</th>
<th>Email</th>
<th>Marital status</th>
<th>Father Name</th>
<th>Spouse Name</th>
<th>Contact</th>
<th>Employee Address</th>
<th>Account Number</th>
<th>IFSC Code</th>
<th>PAN Number</th>
<th>Client Name</th>
<th>Designation</th>
<th>Employee Type</th>
<th>Status</th>
<th>Joining date</th>
<th>End date</th>
<th>Offer CTC</th>
<th>Client Address</th>
</tr>
<% @employees.each do |emp| %>
<tr>
<th><%= emp['employee_id'] %></th>
<th><%= emp['full_name'] %></th>
<th><%= emp['gender'] %></th>
<th><%= emp['dob_date'] %></th>
<th><%= emp['email'] %></th>
<th><%= emp['married_status'] %></th>
<th> <%= emp['father_name'] %></th>
<th><%= emp['spouse_name'] %></th>
<th><%= emp['contact_phone'] %></th>
<th><%= emp['candidate_address2'] %></th>
<th><%= emp['bank_ac'] %></th>
<th><%= emp['bank_ifsc'] %></th>
<th><%= emp['pan_number'] %></th>
<th><%= emp['company_name'] %></th>
<th><%= emp['designation'] %></th>
<th>
<% if emp['employee_type'] == 0 %>
Internal Employee
<% elsif emp['employee_type'] == 1 || emp['employee_type'] == 2 || emp['employee_type'] == 3 %>
Contract Consultant Employee
<% elsif emp['employee_type'] == 4 %>
Permanent Consultant Employee
<% elseif emp['employee_type'] == 5 %>
Past Employee
<% end %>
</th>
<th>
<% if emp['status'] == 0 %>
Pending
<% elsif emp['status'] == 1 %>
Approved
<% elsif emp['status'] == 2 %>
Cancelled
<% elsif emp['status'] == 3 %>
Accepted
<% elsif emp['status'] == 4 %>
Rejected
<% elsif emp['status'] == 5 %>
Onboarded
<% elsif emp['status'] == 6 %>
Offboarded
<% end %>
</th>
<th><%= emp['joining_date'] %></th>
<th><%= emp['work_end_date'] %></th>
<th><%= emp['ctc'] %></th>
<th><%= emp['client_address2']%></th>
</tr>
<% end %>
</table>
<br><br>`
**hr_controller.rb**`def excel_file
@employees = MysqlConnection.connection.select_all("SELECT * FROM Employee_Information where employee_type IN(0)")
#@employees = MysqlConnection.connection.select_all("SELECT * FROM Employee_Information where employee_type IN(1,2,3)")
respond_to do |format|
format.html
format.csv { send_data @employees.to_csv }
end
end`
**application.rb**
require File.expand_path('../boot', __FILE__)
# add HR role
require "csv"
我已经在 lib 文件夹中创建了一个文件模块 "employee_information.rb"
module EmployeeInformation
def self.to_csv(options = {})
CSV.generate(options) do |csv|
csv << column_names
all.each do |product|
csv << product.attributes.values_at(*column_names)
end
end
end end
这一定是一个视图吗table?除非你把它做成某种形式,否则没有办法不使用 javascript 解析 DOM(或者更确切地说访问 DOM 中的所有元素)并获取值和使用解析后的 DOM 中的信息向控制器发出请求。如果您可以制作某种提交表单,那么您可以更轻松地将此信息导出到 excel。无论哪种方式,如果没有某种模型,真的没有另一种方法可以做到这一点。