Aspose.Cells是一款操作EXCEL的第三方类库,比之前的NPOI文件导入更好用。话不多说直接上代码:
1.
先引用一下打开文件的控件。
2.导入按钮的代码
private void barButtonItem7_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
//导入前先清空数据集
gridControl1.DataSource = null;
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string _filePath = openFileDialog1.FileName;
if (_filePath != "")
{
using (FileStream fs = new FileStream(_filePath, FileMode.Open, FileAccess.Read))
{
DataTable dt = Table();
Workbook wk = new Workbook();//工作簿
wk.Open(fs); //打开excel文档
Worksheet worksheet = wk.Worksheets[0];//工作表
Cells cells = worksheet.Cells;//获取worksheet所有单元格
//判断excel导入格式
if (!cells[0, 0].StringValue.Contains("attribute1") || !cells[0, 1].StringValue.Contains("attribute2"))
{
MessageBox.Show("导入的文档格式不对,请选择正确格式的文档导入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
//循环遍历所有单元格信息
for (int i = 1; i < cells.Rows.Count; i++)
{
if (string.IsNullOrEmpty(cells[i, 0].StringValue.Trim()))
{
continue;
}
DataRow dr = dt.NewRow();
dr["attribute1"] = cells[i, 0].StringValue.Trim();
dr["attribute2"] = cells[i, 1].StringValue.Trim();
dr["attribute3"] = cells[i, 2].StringValue.Trim();
dr["attribute4"] = cells[i, 3].StringValue.Trim();
dr["attribute5"] = cells[i, 4].StringValue.Trim();
dr["attribute6"] = cells[i, 5].StringValue.Trim();
dr["attribute7"] = cells[i, 6].StringValue.Trim();
dr["attribute8"] = cells[i, 7].StringValue.Trim();
dr["attribute9"] = cells[i, 8].StringValue.Trim();
dr["attribute10"] = cells[i,9].StringValue.Trim();
dt.Rows.Add(dr);
}
gridControl1.DataSource = dt;
gridView1.BestFitColumns();
}
}
}
}
3.导出按钮
private void barButtonItem6_ItemClick_1(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "Excel2003(*.xls)|*.xls|Excel2007(*.xlsx)|*.xlsx";
saveFile.FileName = “文件名”;
if (saveFile.ShowDialog() == DialogResult.OK)
{
if (saveFile.FilterIndex == 1)
gridControl1.ExportToXls(saveFile.FileName);
else if(saveFile.FilterIndex == 2)
gridControl1.ExportToXlsx(saveFile.FileName);
showmsg();
}
}