<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C#使用NPOI實現Excel匯入匯出的具體程式碼,供大家參考,具體內容如下
使用OpenFileDiolog控制元件和button結合,選擇檔案匯入,將路徑顯示在文字方塊
設定按鈕點選事件,將檔案路徑賦給textBox.Text
private void Department_SUM_Click(object sender, EventArgs e) { OpenFileDialog open = new OpenFileDialog(); open.ShowDialog(); textBox1.Text = open.FileName; }
實現excel匯入,通過textBox1.Text來獲取檔案路徑
private void button_Excel_Click(object sender, EventArgs e) { FileStream fs = null; IWorkbook workbook = null; ISheet sheet = null; IRow row = null; String txtpath = textBox1.Text; fs = File.OpenRead(txtpath); workbook = new XSSFWorkbook(fs); if (workbook != null) { sheet = workbook.GetSheetAt(0); //獲取excel表格的第一個sheet if (sheet != null) { //行的LastRowNum是0~N-1 //列的LastCellNum是1~N int rowCount = sheet.LastRowNum; if (rowCount > 0) { IRow firstrow = sheet.GetRow(0); int cellCount = firstrow.LastCellNum; for (int i = 0; i <= rowCount - 1; i++) { //獲取行的第6和第7列資料,如果cell型別是文字,則通過StringCellValue取值 //如果cell型別是數值,則通過NumericCellValue來取值 row = sheet.GetRow(i + 1); row.Cells[5].NumericCellValue; row.Cells[6].StringCellValue; //可以將Cell的資料存放在list中,這裡假設將兩列cell的資料存入list1,list2 } fs.Close(); } //實際存放DataTable的位置 //呼叫自定義方法,實現匯出 Add_DataTable_To_Excel(txtpath, table, sheet_name); } }
要實現excel匯出,先將程式中的excel存為DataTable格式
本段程式碼存在於上面程式碼“//實際存放DataTable的位置”位置
DataTable table = new DataTable(); DataRow dr; table.Columns.Add("列名1", System.Type.GetType("System.String")); table.Columns.Add("列名2", System.Type.GetType("System.Double")); for (int i = 0; i < list4.Count; i++) { dr = table.NewRow(); dr["列名1"] = list1i]; dr["列名2"] = list2[i].ToString("0.0000"); //將存入的資料格式儲存為保留四位小數 table.Rows.Add(dr); }
通過方法匯出excel,傳參為檔案路徑,DataTable,表名
通過獲取要匯入資料的目標excel的內容,匯入資料,要將excel匯出的方式
public bool Add_DataTable_To_Excel(string output_file_path, DataTable dt, string sheet_name) { FileStream fs = null; IWorkbook workbook = null; ISheet sheet = null; IRow row = null; XSSFWorkbook xssfworkbook = null; fs = new FileStream(output_file_path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); xssfworkbook = new XSSFWorkbook(fs); sheet = xssfworkbook.GetSheet(sheet_name); //設定馬上要使用的Cell資料格式 IDataFormat dataformat = xssfworkbook.CreateDataFormat(); ICellStyle style0 = xssfworkbook.CreateCellStyle(); style0.DataFormat = dataformat.GetFormat("0.0000"); ICellStyle style1 = xssfworkbook.CreateCellStyle(); style1.DataFormat = dataformat.GetFormat("0.00%"); if (sheet != null) { int rowCount = sheet.LastRowNum; if (rowCount > 0) { IRow firstrow = sheet.GetRow(0); int cellCount = firstrow.LastCellNum; for (int i = 0; i <= rowCount - 1; i++) { row = sheet.GetRow(i + 1); //表中有行為空,將空的行影響消除 if (!"".Equals(row.Cells[code_index].StringCellValue)) { row = sheet.GetRow(i + 1); for (int j = 0; j <= dt.Rows.Count - 1; j++) { if (row.Cells[code_index].StringCellValue.Equals(dt.Rows[j][0])) { //遍歷將DataTable中的資料存入Cell的值 row.Cells[1].SetCellValue(Convert.ToDouble(dt.Rows[j][0].ToString())); row.Cells[1].CellStyle = style0; row.Cells[2].SetCellValue(Convert.ToDouble(dt.Rows[j][1].ToString()) / Convert.ToDouble(dt.Rows[j][1].ToString())); row.Cells[2].CellStyle = style1; } } } } } } //匯出excel MemoryStream stream = new MemoryStream(); xssfworkbook.Write(stream); var buf = stream.ToArray(); using (FileStream fss = new FileStream(txtpath, FileMode.Create, FileAccess.Write)) //儲存為Excel檔案 { fss.Write(buf, 0, buf.Length); fss.Flush(); } return true; }
基礎的Excel檔案的匯入匯出功能到這裡全部完成
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45