C# 获取通过读取Excel文件C创建的列表#
在我的WebAPI项目中,我有一个读取excel文件的方法,并将一些值设置为列表,这部分工作正常,但当我想通过HTTP get方法获取该列表时,只会返回一个类似于[{},{},{},{}]的空列表,我必须说的是,这些{}正是我在.xlsx文件中拥有的用户数。我不知道问题是因为返回了那个列表,还是因为我编写了一个错误的Get方法 HTTP获取方法C# 获取通过读取Excel文件C创建的列表#,c#,asp.net,excel,C#,Asp.net,Excel,在我的WebAPI项目中,我有一个读取excel文件的方法,并将一些值设置为列表,这部分工作正常,但当我想通过HTTP get方法获取该列表时,只会返回一个类似于[{},{},{},{}]的空列表,我必须说的是,这些{}正是我在.xlsx文件中拥有的用户数。我不知道问题是因为返回了那个列表,还是因为我编写了一个错误的Get方法 HTTP获取方法 [HttpGet] public List<User> GetUsersList() { List<U
[HttpGet]
public List<User> GetUsersList()
{
List<User> userList = new List<User>();
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"C:\Users\Username\UploadFile\Base.xlsx");
Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
Excel.Range xlRange = xlWorksheet.UsedRange;
int rowCount = xlRange.Rows.Count;
int colCount = xlRange.Columns.Count;
string code = "";
string rolename = "";
int count = 2;
for (int i = 3; i <= rowCount; i++)
{
count += 1;
for (int j = 1; j <= colCount; j++)
{
if (count == i & j == 1)
{
code = xlRange.Cells[i, j].Value2.ToString();
}
else
{
if (count == i & j == 2)
{
rolename = xlRange.Cells[i, j].Value2.ToString();
User user = new User(code, rolename);
userList.Add(user);
}
}
}
}
return userList;
}
作为一个试图在服务器上使用Microsoft Excel互操作性库的人,我建议您不要使用它 使用它时最大的问题之一是,它需要在服务器上安装正确版本的MS Excel 有很多其他图书馆,免费和付费,你可以用来阅读Excel文件。如果需要建议,请使用ClosedXML
它有足够的文档让你开始。当你发布一个问题时,也请发布你遇到的错误。否则社区将无法帮助您。有例外吗?您的服务器计算机中有ms excel吗?您需要向我们提供更多关于“它不工作”的详细信息。您的用户类没有公共属性,因此也没有序列化的内容。您真正的问题是
\u code
和\u rolename
是私有的,因此没有序列化。改为将它们标记为公共。谢谢@dbc!成功了!
public class User
{
private string _code;
private string _rolename;
public User(string code, string rolename)
{
_code = code;
_rolename = rolename;
}
}