调用c#强大的ReoGrid免费表格控件,用于显示、编辑、打印、导出和导入Excel电子表格

By admin at 2022-03-07 • 2人收藏 • 2133人看过

ReoGrid : Powerful free component to show, edit, print, export and import Excel spreadsheet in .NET application

ReoGrid 是 C# 编写的。.NET 电子表格控件(类似 Excel)。支持单元格合并,边框样式,图案背景颜色,数据格式,冻结,公式,宏和脚本执行,表格事件等

开源免费.


官方: https://reogrid.net


image.png


image.png

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
custom={cls="custom";text="自定义控件";left=0;top=0;right=760;bottom=470;bgcolor=12639424;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/

import dotNet;
var dll = dotNet.load("\unvell.ReoGrid.dll");
var reoGridControl1 = dll.new("unvell.ReoGrid.ReoGridControl");
//绑定界面
dotNet.setParent(reoGridControl1,winform.custom);


reoGridControl1.Load(io.fullpath("\MyTemplate.xlsx"));
var Worksheet = reoGridControl1.CurrentWorksheet;
Worksheet.Cells.Item["D7"].Data = "aardio World!";


winform.show();
win.loopMessage();

我这里只是演示在aardio中调用c#的图形控件, 其他关于控件怎么使用,自行参考官方文档.

unvell.ReoGrid.zip


5 个回复 | 最后更新于 2022-04-30
2022-03-17   #1

回复#4 @admin :

再更新一个MiniExcel读取Excel文件,官网地址:https://gitee.com/dotnetchina/MiniExcel#%E7%AE%80%E4%BB%8B

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add()
/*}}*/

import dotNet;
import System.Windows.Forms;
var Forms = System.Windows.Forms;
var DataGridView = Forms.CreateEmbed("DataGridView",winform);
 
import System.Data; 

dll = dotNet.loadFile("res/MiniExcel.dll")
MELibs = dll.import("MiniExcelLibs")
dt = MELibs.MiniExcel.QueryAsDataTable("C:\Users\Administrator\Desktop\test.xlsx", false, "Sheet1");
dv = System.Data.DataView(dt);

DataGridView.DataSource=dv;
DataGridView.EditMode=2;

winform.show();
win.loopMessage();
return winform;

国人写的,开源免费,据说内存占用少,效率非常高

读写上百万条数据没问题。官网有测试数据对比。

2022-03-18   #2

太强大了,强大过头了

Worksheet.AfterCellEdit =function(a,b){
import console
console.open()
console.log(a,b.NewData)
}
reoGridControl1.RunScript("alert('hello world');");

QQ截图20220318153046.jpg

2022-03-23   #3
var t=dll.import("unvell.ReoGrid.CellTypes");
worksheet.Cells.Item["D8"].Data=t.ButtonCell("Hello世界");
var button=t.ButtonCell("你好,世界");
worksheet.Cells.Item["D3"].Body=button
worksheet.Cells.Item["D1"].Body=t.HyperlinkCell("https://www.aardio.com/", true);
worksheet.Cells.Item["D2"].Body=t.ProgressCell()
worksheet.Cells.Item["D2"].Data="60%"

var dropdown = t.DropdownListCell(
  "Apple", "Orange", "Banana", "Pear", 
  "Pumpkin", "Cherry", "Coconut"
);

worksheet.Cells.Item["B2"].Data = dropdown;

QQ截图20220323213640.jpg

分享自定义单元格类型的一些用法

2022-03-26   #4

回复#32 @hi_aardio :

我在VB.net下用ReoGrid测试了一下,1000万条数据(100000行x100列),保存后的文件大约21M多,完全没问题,用时(包括生成+保存)大约15秒左右。

代码:

Public Class Form1
    Private Sub ReoGridControl1_DoubleClick(sender As Object, e As EventArgs) Handles ReoGridControl1.DoubleClick

        ReoGridControl1.CurrentWorksheet.AppendRows(100000)
        ReoGridControl1.CurrentWorksheet.AppendColumns(100)

        For row = 1 To 100000
            For col = 1 To 100
                ReoGridControl1.CurrentWorksheet.SetCellData(row, col, "Hello VB.net")
            Next
        Next

        ReoGridControl1.Save("C:\Users\Administrator\Documents\dotNetProject\VB20220326\output.xlsx")



    End Sub
End Class

无标题.png

登录后方可回帖

登 录
信息栏
公告:
个人博客
专注分享
可在分享中适当提问
谢绝纯提问
否则不再提醒一律
删帖
谢谢合作!



本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
Loading...