我制作了一个应用程序C#,用于搜索用户在excel文件中输入的代码,然后显示与该代码相对应的一些说明。
excel的文件有2列。一种是代码,一种是描述。例如
code description
1 hello
2 this is
3 a test
因此,如果用户输入3。它将返回“测试”
我正在使用Microsoft.Office.Interop.Excel;
但是,引起我注意的是,这仅在计算机上安装了Excel的情况下才有效。我需要的东西不需要您在计算机上安装excel。
我当前程序的代码。
using Excel = Microsoft.Office.Interop.Excel;
namespace Excel_Finder
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
label3.Text = "Searching For Code!";
label3.Visible = true;
Excel.Application xlApp = new Excel.Application();
string path = textBox3.Text;
Excel.Workbook workBook = xlApp.Workbooks.Open(path);
Excel.Worksheet workSheet = workBook.Worksheets["Sheet1"];
Excel.Range range = workSheet.Columns[1];//Range of Column A
Excel.Range findRange;
string strToFind = textBox1.Text;
string description;
findRange = range.Find(strToFind);
if (findRange is null)
{
label3.Text = "Code " + textBox1.Text + " Does not Exist!";
}
else
{
description = workSheet.Cells[findRange.Row, 2].VALUE;
textBox2.Text = description;
}
}
}
}
此代码可以按预期工作,但是正如我所说,如果我没有安装excel,那么这将不起作用。我发现了一些不需要安装excel的其他库,但是我不确定如何使用它们来完成同样的事情。如果有人可以提供一个适用于任何库的示例。
谢谢。
答案 0 :(得分:0)
C#中有许多excel库,其中最常用,快速且容易的是EPPLUS。
以下是读取文件的示例(来源:https://github.com/JanKallman/EPPlus/wiki/Getting-Started)
//Open the workbook (or create it if it doesn't exist)
var fi=new FileInfo(@"c:\workbooks\myworkbook.xlsx")
using (var p = new ExcelPackage(fi))
{
//Get the Worksheet created in the previous codesample.
var ws=p.Workbook.Worksheets["MySheet"];
Set the cell value using row and column.
ws.Cells[2, 1].Value = "This is cell A2. It is set to bolds";
//The style object is used to access most cells formatting and styles.
ws.Cells[2, 1].Style.Font.Bold=true;
//Save and close the package.
p.Save();
}