调用C# GemBox读写Excel表格

By jerryxjr1220 at 2022-06-22 • 0人收藏 • 763人看过

image.png

GemBox.Spreadsheet 是一个 .NET 组件,它使您能够使用一个简单的 API 从 .NET 应用程序中读取、写入、编辑、转换和打印电子表格文件。

使用 GemBox.Spreadsheet,您可以获得一个快速可靠且易于使用的组件。它只需要 .NET,因此您可以轻松部署您的应用程序,而无需考虑其他许可证。它比 Microsoft Excel 自动化快 250 倍!


官方网址: https://www.gemboxsoftware.com/spreadsheet


import dotNet;
dotNet.reference({
	"GemBox.Spreadsheet" = $"\res\GemBox.Spreadsheet.dll";
	"BouncyCastle.Crypto" = $"\res\BouncyCastle.Crypto.dll";
});

Spreadsheet = dotNet.import("GemBox.Spreadsheet");

Spreadsheet.SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");

//新建Excel
wb = Spreadsheet.ExcelFile();

//新增worksheet
ws = wb.Worksheets.Add("Sheet 1");

//读取Excel
//wb = Spreadsheet.ExcelFile.Load(file);

//按Cell名称读写值
ws.Cells.Item["A1"].Value = 123;

//按Cell行列读写公式,行列从0开始计数
ws.Rows.Item[1].Cells.Item[2].Formula = "= A1";

//保存
wb.Save(io.fullpath("\123.xlsx"));

image.png

调用还是挺方便的,暂时用免费版也没法发现什么限制。

要是买了License可以更改上面的值变成正式版。


测试文件下载:

GemBox.7z

GemBox也可以直接在Nuget上下载。

6 个回复 | 最后更新于 2022-08-21
2022-06-22   #1

谢谢分享, 我帮你增加了简介和dll打包工程. , 方面其他人测试.

2022-06-23   #2

回复#1 @admin :

2022-06-24   #3

看起来确实简...试下看看

谢谢楼主

2022-08-20   #4

@admin 如何把如何把 sheet 嵌入到 form里面

import dotNet;
import win.ui;
import console;
/*DSG{{*/
mainForm = win.form(text="测试2";right=1089;bottom=554)
mainForm.add(
custom={cls="custom";text="自定义控件";left=364;top=8;right=1074;
bottom=538;bgcolor=12639424;db=1;dl=1;dr=1;dt=1;z=1};
)
/*}}*/
dotNet.reference({
    "GemBox.Spreadsheet" = $"\res\GemBox.Spreadsheet.dll";
    "BouncyCastle.Crypto" = $"\res\BouncyCastle.Crypto.dll";
});
 
Spreadsheet = dotNet.import("GemBox.Spreadsheet");
 
Spreadsheet.SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
// 如何把 sheet 嵌入到 form里面??
//win.setParent(Spreadsheet,mainForm.custom.hwnd);
mainForm.custom.onEraseBkgnd  = lambda() 0;
mainForm.custom.adjust = function( cx,cy,wParam ) {    
    Spreadsheet.Width = cx;
    Spreadsheet.Height = cy; 
};
mainForm.custom.adjust();
 
//新建Excel
wb = Spreadsheet.ExcelFile();
 
//新增worksheet
ws = wb.Worksheets.Add("Sheet 1");
 
//读取Excel
//wb = Spreadsheet.ExcelFile.Load("");
 
//按Cell名称读写值
ws.Cells.Item["A1"].Value = 123444;
 
//按Cell行列读写公式,行列从0开始计数
ws.Rows.Item[1].Cells.Item[2].Formula = "= A1";
 
//保存
wb.Save(io.fullpath("\123.xlsx"));

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


2022-08-20   #5

回复#4 @andrew7baker :

这个是后台处理数据的, 不是显示数据的, 所以没有显示在界面上的功能.

如果你想把处理好的数据显示在前面界面上, 要和DataGridView配合使用, 用DataGridView来显示数据, 具体看

https://www.gemboxsoftware.com/spreadsheet/examples/c-sharp-vb-net-import-export-excel-datagridview/5301


2022-08-21   #6

登录后方可回帖

登 录
信息栏
公 告:

专注分享

谢绝纯提问

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

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

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