C# 導入導出


/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("導出完成");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM