• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#导入导出

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

/1、要把文件加载到程序中
//2、获取sheet
//3、获取所有行
//4、获取行中所有的数据
//5、将获取到的数据,按照原有的数据格式,存储到一个数据容器中


OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Excel(*.xlsx)|*.xlsx";
if (ofd.ShowDialog() != DialogResult.OK)
{
return;
}
//创建一个数据表,用来存储 从Excel中导入的数据
DataTable dt = new DataTable();

//得到Excel文件地址 是包含路径的fileName
string excelFilePath = ofd.FileName;
//创建一个工作簿 2007版本及以上 使用XSSFWorkbook ,2007以前的版本 使用 使用HSSFWorkbook
IWorkbook workbook = new XSSFWorkbook(excelFilePath);
//创建一个sheet ,用来存储Excel中的一个Sheet
//ISheet sheet = workbook.GetSheet("Sheet1");//根据sheet的名字获取
ISheet sheet = workbook.GetSheetAt(0);//根据sheet的索引,索引从0开始
//创建一个Row 存储第一行有效数据,通常 有可能是标题行
IRow row = sheet.GetRow(sheet.FirstRowNum);
//处理标题行, 遍历标题行中所有的单元格(Cell),每个单元格的值 即为列名
foreach (ICell item in row.Cells)
{
//往DataTable中添加Excel中对应的列的值
object cellValue = this.GetCellValueByType(item);
string columnName = "";//DataTable的列明
if (cellValue == null || cellValue.ToString() =="")
{
columnName = "column" + dt.Columns.Count;//默认名
}
else
{
columnName = cellValue.ToString();//具体值单元格值 作为名字
}
dt.Columns.Add(columnName);
}
//遍历所有的有效数据 并将有效数据 添加到DataTable
for (int i = sheet.FirstRowNum+1; i <= sheet.LastRowNum; i++)
{
IRow dataRow = sheet.GetRow(i);
DataRow dr = dt.NewRow();// 创建与dt表具有相同架构的新数据行(Row)
for (int j = 0; j < dataRow.Cells.Count; j++)
{
dr[j] = this.GetCellValueByType( dataRow.Cells[j]);
}
dt.Rows.Add(dr);//向dt数据表中添加一个数据行
}
//将导入的数据表 绑定到dataGridView1
dataGridView1.DataSource = dt;
}

 

 

-----------------------------导出

IWorkbook wordbook = new XSSFWorkbook();
ISheet sheet = wordbook.CreateSheet("Sheet1");
IRow row = sheet.CreateRow(0);
row.CreateCell(0).SetCellValue("姓名");
row.CreateCell(1).SetCellValue("性别");
row.CreateCell(2).SetCellValue("年龄");
for (int i = 0; i < dt.Rows.Count; i++)
{
row = sheet.CreateRow(i+1);
row.CreateCell(0).SetCellValue(dt.Rows[i]["姓名"].ToString());
row.CreateCell(1).SetCellValue(dt.Rows[i]["性别"].ToString());
row.CreateCell(2).SetCellValue(Convert.ToInt32(dt.Rows[i]["年龄"]));
}
using (FileStream fs = new FileStream(excelFileSavePath, FileMode.Create, FileAccess.Write))
{
wordbook.Write(fs);
}
MessageBox.Show("导出完成");


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c:forEach c:forTokens发布时间:2022-07-14
下一篇:
C#FindvsFirstOrDefault发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap