(低配版 )Excel导入功能
我要做的是导入并读取。
要引用Aspose.Cells.dll
引用 using Aspose.Cells;
(视图。)
(要导入的文件)
代码一(按钮事件):
private void button2_Click(object sender, EventArgs e) //按钮事件
{
OpenFileDialog frm = new OpenFileDialog();
frm.Filter = "Excel文件(*.xls,xlsx)|*.xls;*.xlsx";
if (frm.ShowDialog() == DialogResult.OK)
{
string excelName = frm.FileName;
Workbook excel = new Workbook(excelName); //拿到url
List<EntityModel> importyString = GetImportExcelRoute(excel); //读取文件
}
}
代码二(读取表格内容)
//循环遍历获取excel的中每行每列的值
public List<EntityModel> GetImportExcelRoute(Workbook excel)
{
int icount = excel.Worksheets.Count; //总条数
List<EntityModel> routList = new List<EntityModel>(); //声明一个实体(自己写,不配图了),装获取的数据
for (int i = 0; i < icount; i++)
{
Worksheet sheet = excel.Worksheets[i];
Cells cells = sheet.Cells;
int rowcount = cells.MaxRow; //行数
int columncount = cells.MaxColumn; //列数
if (rowcount > 0 && columncount > 0)
{
TableName = cells[0, 0].StringValue.Trim(); //列名 (因为我导入的文件是固定格式的。所以取固定值可以拿到列名)
for (int e = 2; e < rowcount; e++) //循环行 (因为表格,前两列,是表名和列名。所以计数e从第二行开始循环)
{
EntityModel entityModel = new EntityModel();
for (int c = 0; c <= 4; c++) //循环4列(也是因为表格固定,才循环c列为4列)
{
switch (c)
{
case 0:
entityModel.Name = cells[e, c].StringValue.Trim(); break; //获取姓名
case 1:
entityModel.Type = cells[e, c].StringValue.Trim(); break; //获取类型
case 2:
entityModel.IsEmpty = cells[e, c].StringValue.Trim(); break; //获取是否为空
case 3:
entityModel.Instructions = cells[e, c].StringValue.Trim(); break;//获取说明
}
}
routList.Add(entityModel); //添加
}
}
}
return routList;
}
注:因为没有做其他判断,所以表格合并能不能求出值,还有表格原来自带颜色能不能用 。都没测试过...
浙公网安备 33010602011771号