在导入Excel的时候由于列名不同,需要做一个映射,有提示说在App.config里做配置,
但是不会啊,有没有大神求教
在app.config里面存入sql
类似
select excel里面的列1 as 你要的列名1, excel里面的列2 as 你要的列名2 ... from sheet1
用oledb读取执行,查询数据
C#读取app.config参考:http://blog.csdn.net/kone0611/article/details/51011185
个人推荐:用npoi来弄,你可以上百度查怎么使用,这个很好用,不像其他的那样需要本机装有office来能使用,实在不行可以找我,我前段时间在网上找了,敲了个Demo
如果楼主是想把Excel的数据提取出来的话推荐还是用NPOI,最近我也在用这个,功能特别强大
if (string.IsNullOrEmpty(fudExcel.FileName))
{
ZWL.Common.MessageBox.Show(this, "请选择上传文件!");
return;
}
string extension = fudExcel.FileName.Substring(fudExcel.FileName.LastIndexOf('.'));
if ((extension == ".xls") || (extension == ".xlsx"))
{
}
else
{
ZWL.Common.MessageBox.Show(this, "上传文件扩展必须是(xls/xlsx)文件!");
return;
}
string filepath = string.Empty;
// 上传到服务器临时目录下
string tempdir = Server.MapPath("/TempExcelUp/");
string filename = Guid.NewGuid() + extension;
filepath = tempdir + filename;
// 保存
fudExcel.SaveAs(filepath);
//调试使用
//string filename = "temp.xlsx";
//filepath="G:/maje/HaiXinKongTiaoWenJuan/KongTiaoPingTai/Web/TempExcelUp/temp.xlsx";
FileStream fs = null;
IWorkbook workbook = null;
ISheet sheet = null;
using (fs = File.OpenRead(filepath))
{
// 2007版本
if (extension == ".xlsx")
workbook = new XSSFWorkbook(fs);
// 2003版本
else if (extension != ".xls")
workbook = new HSSFWorkbook(fs);
if (workbook != null)
{
//需要手工修改选择哪一个sheet页面
//质量保证审核
if (txtDanJuLeiXingBianHao.Text.Trim() == "4")
{
sheet = workbook.GetSheetAt(5);//读取第一个sheet,当然也可以循环读取每个sheet
}
//产品专业评审类目管理
if (txtDanJuLeiXingBianHao.Text.Trim() == "5")
{
sheet = workbook.GetSheetAt(6);//读取第一个sheet,当然也可以循环读取每个sheet
}
//产品专业评审类目管理
if (txtDanJuLeiXingBianHao.Text.Trim() == "8")
{
sheet = workbook.GetSheetAt(0);//读取第一个sheet,当然也可以循环读取每个sheet
}
for (int m = 2; m < rowCount; m++)//从第三行开始
{
excelRow = sheet.GetRow(m);//读取当前行
strTemp= excelRow.GetCell(0).ToString();
//如果文本框内容为“NO.”表示是每一大类的开始,第3列即为大类
if (strTemp == "NO.")
{
strDaLei= excelRow.GetCell(2).ToString().Split('、');
strDaLei[0] = strDaLei[0].Trim();
strDaLei[1] = strDaLei[1].Trim();
//TextBox1.Text += strDaLei[0] + strDaLei[1]+"==";
}
}
}
这个是我最近用NPOI写的一个导入的实例
楼主可以借鉴借鉴
对了,我是用winform做的,我想到一个办法,就是在点击导入按钮后,弹出一个框框,就像数据库导入Excel选择映射关系一样,
将导入的所有列名显示在一个listview上,然后单击目标列
显示自定义的列名在里面,选择对应的列映射,
这样就对应起来了