调用C# GemBox读写Excel表格
By
jerryxjr1220
at 2022-06-22 • 1人收藏 • 1355人看过
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"));
调用还是挺方便的,暂时用免费版也没法发现什么限制。
要是买了License可以更改上面的值变成正式版。
测试文件下载:
GemBox也可以直接在Nuget上下载。
6 个回复 | 最后更新于 2022-08-21
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();
回复#4 @andrew7baker :
这个是后台处理数据的, 不是显示数据的, 所以没有显示在界面上的功能.
如果你想把处理好的数据显示在前面界面上, 要和DataGridView配合使用, 用DataGridView来显示数据, 具体看
登录后方可回帖
谢谢分享, 我帮你增加了简介和dll打包工程. , 方面其他人测试.