您現在的位置是:電腦技術吧?>? 故障問題 ??>??如何將數據導入excel,將excel數據導入word??>??正文詳情

如何將數據導入excel,將excel數據導入word

摩清涵2019-12-17 15:02:54 人圍觀
簡介excel數據導入mysql簡介:工程中經常使用excel導入數據和excel導入數據庫的功能。相關內容已搜索過。總結使用的方案。方案一npoi npoi是。POI項目的網絡版本。POI是表格數據導入cad

引言  項目中常用到將數據導入Excel,將Excel中的數據導入數據庫的功能,曾經也查找過相關的內容,將曾經用過的方案總結一下。

  方案一  NPOI  NPOI 是 POI 項目的 .NET 版本。

POI是一個開源的Java讀寫Excel、WORD等微軟OLE2組件文檔的項目。

  使用 NPOI 你就可以在沒有安裝 Office 或者相應環境的機器上對 WORD/EXCEL 文檔進行讀寫。

NPOI是構建在POI 3.x版本之上的,它可以在沒有安裝Office的情況下對Word/Excel文檔進行讀寫操作。

  優勢  (一)傳統操作Excel遇到的問題:  1、如果是.NET,需要在服務器端裝Office,且及時更新它,以防漏洞,還需要設定權限允許.NET訪問COM ,如果在導出過程中出問題可能導致服務器宕機。

  2、Excel會把只包含數字的列進行類型轉換,本來是文本型的,Excel會將其轉成數值型的,比如編號000123會變成123。

  3、導出時,如果字段內容以-或=開頭,Excel會把它當成公式進行,會報錯。

  4、Excel會根據Excel文件前8行分析數據類型,如果正好你前8行某一列只是數字,那它會認為該列為數值型,自動將該列轉變成類似1.42702E 17格式,日期列變成包含日期和數字的。

  (二)使用NPOI的優勢  1、您可以完全免費使用該框架  2、包含了大部分EXCEL的特性(單元格樣式、數據格式、公式等等)  3、專業的技術支持服務(24*7全天候) (非免費)  4、支持處理的文件格式包括xls, xlsx, docx.  5、采用面向接口的設計架構( 可以查看 NPOI.SS 的命名空間)  6、同時支持文件的導入和導出  7、基于.net 2.0 也支持xlsx 和 docx格式(當然也支持.net 4.0)  8、來自全世界大量成功且真實的測試Cases  9、大量的實例代碼  11、你不需要在服務器上安裝微軟的Office,可以避免版權問題。

  12、使用起來比Office PIA的API更加方便,更人性化。

  13、你不用去花大力氣維護NPOI,NPOI Team會不斷更新、改善NPOI,絕對省成本。

  NPOI之所以強大,并不是因為它支持導出Excel,而是因為它支持導入Excel,并能理解OLE2文檔結構,這也是其他一些Excel讀寫庫比較弱的方面。

通常,讀入并理解結構遠比導出來得復雜,因為導入你必須假設一切情況都是可能的,而生成你只要保證滿足你自己需求就可以了,如果把導入需求和生成需求比做兩個集合,那么生成需求通常都是導入需求的子集,這一規律不僅體現在Excel讀寫庫中,也體現在pdf讀寫庫中,目前市面上大部分的pdf庫僅支持生成,不支持導入。

  構成  NPOI 1.2.x主要由POIFS、DDF、HPSF、HSSF、SS、Util六部分組成。

  NPOI.POIFS  OLE2/ActiveX文檔屬性讀寫庫  NPOI.DDF  Microsoft Office Drawing讀寫庫  NPOI.HPSF  OLE2/ActiveX文檔讀寫庫  NPOI.HSSF  Microsoft Excel BIFF(Excel 97-2003)格式讀寫庫  NPOI.SS  Excel公用接口及Excel公式計算引擎  NPOI.Util  基礎類庫,提供了很多實用功能,可用于其他讀寫文件格式項目的開發  NPOI組成部分  NPOI 1.x的最新版為NPOI 1.2.5,其中包括了以下功能:  1、讀寫OLE2文檔  2、讀寫DocummentSummaryInformation和SummaryInformation  3、基于LittleEndian的字節讀寫  4、讀寫Excel BIFF格式  5、識別并讀寫Excel BIFF中的常見Record,如RowRecord, StyleRecord, ExtendedFormatRecord  6、支持設置單元格的高、寬、樣式等  7、支持調用部分Excel內建函數,比如說sum, countif以及計算符號  8、支持在生成的XLS內嵌入打印設置,比如說橫向/縱向打印、縮放、使用的紙張等。

  NPOI 2.0主要由SS, HPSF, DDF, HSSF, XWPF, XSSF, OpenXml4Net, OpenXmlFormats組成,具體列表如下:  Assembly名稱 模塊/命名空間 說明  NPOI.DLL  NPOI.POIFS  OLE2/ActiveX文檔屬性讀寫庫  NPOI.DLL  NPOI.DDF  微軟Office Drawing讀寫庫  NPOI.DLL  NPOI.HPSF  OLE2/ActiveX文檔讀寫庫  NPOI.DLL  NPOI.HSSF  微軟Excel BIFF(Excel 97-2003, doc)格式讀寫庫  NPOI.DLL  NPOI.SS  Excel公用接口及Excel公式計算引擎  NPOI.DLL  NPOI.Util  基礎類庫,提供了很多實用功能,可用于其他讀寫文件格式項目的開發  NPOI.OOXML.DLL NPOI.XSSF Excel 2007(xlsx)格式讀寫庫  NPOI.OOXML.DLL NPOI.XWPF Word 2007(docx)格式讀寫庫  NPOI.OpenXml4Net.DLL NPOI.OpenXml4Net OpenXml底層zip包讀寫庫  NPOI.OpenXmlFormats.DLL NPOI.OpenXmlFormats 微軟Office OpenXml對象關系庫  (以上內容來自百度百科)從上表可知NPOI組件已支持excel2007,記得之前用的時候只支持excel2003。

很久沒研究過這玩意兒了。

  案例  官網地址:http://npoi.codeplex.com/,可以從官網下載NPOI2.X版本的。

  首先引入  ICSharpCode.SharpZipLib.dll  NPOI.dll  NPOI.OOXML.dll  NPOI.OpenXml4Net.dll  NPOI.OpenXmlFormats.dll  然后引入命名空間:  using NPOI.XSSF.UserModel;  using NPOI.SS.UserModel;  using NPOI.HSSF.UserModel;  輔助類  using NPOI.XSSF.UserModel;  using NPOI.SS.UserModel;  using NPOI.HSSF.UserModel;  using System;  using System.Collections.Generic;  using System.Data;  using System.IO;  using System.Linq;  using System.Text;  using System.Threading.Tasks;  using NPOI.SS.Formula.Eval;  namespace Wolfy.Common  {  ///

  /// 使用NPOI組件  /// 需引入ICSharpCode.SharpZipLib.dll/NPOI.dll/NPOI.OOXML.dll/NPOI.OpenXml4Net.dll/NPOI.OpenXmlFormats.dll  /// office2007  ///  public class NPOIExcelHelper  {  ///  /// 將Excel文件中的數據讀出到DataTable中  ///  ///  ///   public static DataTable Excel2DataTable(string file, string sheetName, string tableName)  {  DataTable dt = new DataTable();  IWorkbook workbook = null;  using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))  {  //office2003 HSSFWorkbook  workbook = new XSSFWorkbook(fs);  }  ISheet sheet = workbook.GetSheet(sheetName);  dt = Export2DataTable(sheet, 0, true);  return dt;  }  ///  /// 將指定sheet中的數據導入到datatable中  ///  ///指定需要導出的sheet  ///列頭所在的行號,-1沒有列頭  ///  ///   private static DataTable Export2DataTable(ISheet sheet, int HeaderRowIndex, bool needHeader)  {  DataTable dt = new DataTable();  XSSFRow headerRow = null;  int cellCount;  try  {  if (HeaderRowIndex 0 || !needHeader)  {  headerRow = sheet.GetRow(0) as XSSFRow;  cellCount = headerRow.LastCellNum;  for (int i = headerRow.FirstCellNum; i = cellCount; i )  {  DataColumn column = new DataColumn(Convert.ToString(i));  dt.Columns.Add(column);  }  }  else  {  headerRow = sheet.GetRow(HeaderRowIndex) as XSSFRow;  cellCount = headerRow.LastCellNum;  for (int i = headerRow.FirstCellNum; i = cellCount; i )  {  ICell cell = headerRow.GetCell(i);  if (cell == null)  {  break;//到最后 跳出循環  }  else  {  DataColumn column = new DataColumn(headerRow.GetCell(i).ToString());  dt.Columns.Add(column);  }  }  }  int rowCount = sheet.LastRowNum;  for (int i = HeaderRowIndex 1; i = sheet.LastRowNum; i )  {  XSSFRow row = null;  if (sheet.GetRow(i) == null)  {  row = sheet.CreateRow(i) as XSSFRow;  }  else  {  row = sheet.GetRow(i) as XSSFRow;  }  DataRow dtRow = dt.NewRow();  for (int j = row.FirstCellNum; j = cellCount; j )  {  if (row.GetCell(j) != null)  {  switch (row.GetCell(j).CellType)  {  case CellType.Boolean:  dtRow[j] = Convert.ToString(row.GetCell(j).BooleanCellValue);  break;  case CellType.Error:  dtRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);  break;  case CellType.Formula:  switch (row.GetCell(j).CachedFormulaResultType)  {  case CellType.Boolean:  dtRow[j] = Convert.ToString(row.GetCell(j).BooleanCellValue);  break;  case CellType.Error:  dtRow[j] = ErrorEval.GetText(row.GetCell(j).ErrorCellValue);  break;  case CellType.Numeric:  dtRow[j] = Convert.ToString(row.GetCell(j).NumericCellValue);  break;  case CellType.String:  string strFORMULA = row.GetCell(j).StringCellValue;  if (strFORMULA != null strFORMULA.Length 0)  {  dtRow[j] = strFORMULA.ToString();  }  else  {  dtRow[j] = null;  }  break;  default:  dtRow[j] = ;  break;  }  break;  case CellType.Numeric:  if (DateUtil.IsCellDateFormatted(row.GetCell(j)))  {  dtRow[j] = DateTime.FromOADate(row.GetCell(j).NumericCellValue);  }  else  {  dtRow[j] = Convert.ToDouble(row.GetCell(j).NumericCellValue);  }  break;  case CellType.String:  string str = row.GetCell(j).StringCellValue;  if (!string.IsNullOrEmpty(str))  {  dtRow[j] = Convert.ToString(str);  }  else  {  dtRow[j] = null;  }  break;  default:  dtRow[j] = ;  break;  }  }  }  dt.Rows.Add(dtRow);  }  }  catch (Exception)  {  return null;  }  return dt;  }  ///  /// 將DataTable中的數據導入Excel文件中  ///  ///  ///  public static void DataTable2Excel(DataTable dt, string file, string sheetName)  {  IWorkbook workbook = new XSSFWorkbook();  ISheet sheet = workbook.CreateSheet(sheetName);  IRow header = sheet.CreateRow(0);  for (int i = 0; i dt.Columns.Count; i )  {  ICell cell = header.CreateCell(i);  cell.SetCellValue(dt.Columns[i].ColumnName);  }  //數據  for (int i = 0; i dt.Rows.Count; i )  {  IRow row = sheet.CreateRow(i 1);  for (int j = 0; j dt.Columns.Count; j )  {  ICell cell = row.CreateCell(j);  cell.SetCellValue(dt.Rows[i][j].ToString());  }  }  MemoryStream stream = new MemoryStream();  workbook.Write(stream);  byte[] buffer = stream.ToArray();  using (FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write))  {  fs.Write(buffer, 0, buffer.Length);  fs.Flush();  }  }  ///  /// 獲取單元格類型  ///  ///  ///   private static object GetValueType(XSSFCell cell)  {  if (cell == null)  {  return null;  }  switch (cell.CellType)  {  case CellType.Blank:  return null;  case CellType.Boolean:  return cell.BooleanCellValue;  case CellType.Error:  return cell.ErrorCellValue;  case CellType.Numeric:  return cell.NumericCellValue;  case CellType.String:  return cell.StringCellValue;  case CellType.Formula:  default:  return = cell.StringCellValue;  }  }  }  }

版權聲明:本文由 摩清涵 整理編輯。

原標題:excel數據導入表格,excel數據導入access

轉載注明出處:http://www.dn9ww09s.icu/fault/15511.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • access數據庫和mysql,access數據庫與mysql

    access數據庫和mysql,access數據庫與mysql 相關圖片mysql數據庫一。軟件簡介db2mysql是一款能夠自動將access數據庫文件轉換成相應SQL代碼的軟件。它可以廣泛應用于access數據庫到MySQL或其他類型SQL數據mysql access...

  • 自定義標簽在哪,自定義標簽是什么意思

    自定義標簽在哪,自定義標簽是什么意思 相關圖片自定義個性標簽大全一。JSP標記的好處不再冗長。數據字典是使用的下拉框。只要定義了字典,就會顯示字典的可用內容。只要定義了字典和屬性值,就會顯示字典的顯示值。2。首先定...

  • 傳值和傳址,傳值與傳值

    傳值和傳址,傳值與傳值 相關圖片傳值調用//****在ASCX用戶控件中,定義要接收參數的屬性示例:private string mbooktitle;public string booktite{gjs傳值...

  • 自定義壁紙 文字,手機壁紙自定義文字

    自定義壁紙 文字,手機壁紙自定義文字 相關圖片照片加文字本文給出了一個Android實現的文本圖片自定義按鈕的實例。與您分享以供參考。具體分析如下:在Android開發中,經常需要使用帶有文本和圖片的按鈕。讓我們解釋美圖秀秀怎么...

  • 在編譯時if怎么用,編譯時注解

    在編譯時if怎么用,編譯時注解 相關圖片編譯注解和運行時注解本文主要介紹PHP編譯安裝中常見錯誤的解決方法。本文介紹了PHP編譯和安裝中的大多數錯誤,并提供了解決方案。對于你的朋友,請參考這篇文章是在https://co編譯...

  • sqlserver數據庫字段說明,sqlserver數據庫增加字段

    sqlserver數據庫字段說明,sqlserver數據庫增加字段 相關圖片sqlserver數據庫特點有時我們想知道這個值來自哪個表和字段,搜索Internet,找到更好的方法,并通過存儲過程實現它。只要傳入一個要查找的值,就可以找到該值所在的表和字段名。前提...

  • 排序命令,excel命令

    排序命令,excel命令 相關圖片對于excel數據庫排序是按照我確信您對redis sort命令了解不多,所以我編譯了一些redissort命令的使用方法和示例,希望這些示例能對您有所幫助。Redis sort是Redislinux按時間排序...

  • javascript提交表單,js自動提交表單

    javascript提交表單,js自動提交表單 相關圖片form表單提交多條數據本文主要介紹了對JSON格式表單數據提交相關資料的深入分析。供您參考的是,以JSON編碼格式提交表單數據是HTML5對web發展和演進的又一貢獻。以前,我們的Hajax提交...

  • 電腦用戶鎖定怎么解除,用戶已被鎖定

    電腦用戶鎖定怎么解除,用戶已被鎖定 相關圖片華為賬號鎖定怎么解除甲骨文解鎖Scott/Tiger用戶。一。為Scott用戶驗證當前系統的狀態:從DBA中選擇*[users where upper(username)='Scowin10賬戶鎖定多久解除...

  • pyramid scheme,schemes什么意思

    pyramid scheme,schemes什么意思 相關圖片qq音樂url schemes在IOS應用程序中,經常可以看到一些應用程序通過單擊操作直接跳轉到app store頁面。首先,奇怪的是,這個第三方應用程序是如何在IOS系統應用程序交互中實現url schemes 微...

熱評文章

  • 3d動態全景 華為,福彩3D

    3d動態全景 華為,福彩3D 相關圖片動態鎖屏目前,我們忽略z軸(以便我們可以在平面中更清楚地看到),并且假設z軸坐標都是0。假設游戲中有兩個軌跡點在動態增加和變化。最后,這兩個變化軌跡點的組合就是它們生...

  • 點擊文本進行復制,html文本可點擊

    點擊文本進行復制,html文本可點擊 相關圖片點擊單元格出現文本本文的示例描述了JavaScript通過單擊自動選擇textarea文本的方法。與您分享以供參考。具體實現方法如下:?1234texrea rows=10 co如何設置網頁點擊文本就可以復制...

  • C內核開發,IDEA可以開發C號碼

    C內核開發,IDEA可以開發C號碼 相關圖片linux系統下C開發步驟1:創建一個項目start Xcode-file-New-project。然后創建一個IOS單視圖應用程序。在這里我們將其命名為類別。步驟2:立即創建類別開源C開發工具...

  • ios有psp模擬器嗎,ios用psp模擬器

    ios有psp模擬器嗎,ios用psp模擬器 相關圖片蘋果psp模擬器卡很多童鞋喜歡在PSP上玩游戲,所以他們需要PSP設備嗎?現在有一個流行的PSP模擬器ppssp,它不僅可以在電腦上使用,也可以在Android手機蘋果手機上使用蘋果玩psp模擬器...

  • A/C,C-5

    A/C,C-5 相關圖片7c本文共享了使用objective C從遠程url下載圖片的兩種方法,它們都用于個人項目。這些建議是向您簡要介紹的,可供需要的小伙伴參考。目標C從遠程URL下載圖c=...

  • 掛起線程,websphere線程掛起

    掛起線程,websphere線程掛起 相關圖片linux線程掛起但有時,我們希望主線程等待IO操作完成。例如,在主線程創建文件夾后,等待完成,然后在文件夾中創建文件。nsobject類有一個方法performselectorQt線程的掛起和恢復...

  • 如何做app,app怎么做出來的

    如何做app,app怎么做出來的 相關圖片app好做嗎第一個坑:以蘋果手表為中心,以手表為核心的設計是不是錯了?我知道這聽起來很奇怪,但事實上,我們看到的最好的蘋果手表應用程序并不是那些以桌面功能為核心的應用...

  • 不經過壓縮的圖像文件格式,用于壓縮靜止圖像

    不經過壓縮的圖像文件格式,用于壓縮靜止圖像 相關圖片如何壓縮jpg圖片在iPhone上讀取圖像數據有兩種簡單的方法:uiimagejpegresentation和uiimagepngrepresentation。uiImageJP壓縮頭像...

  • ios 動畫,ios新動畫

    ios 動畫,ios新動畫 相關圖片ios12動畫效果uiview類執行自動執行動畫所需的工作,但在您要執行動畫時仍會通知視圖,因此需要將更改屬性的代碼包裝成代碼塊。一。uiview動畫的特定創建方法-(void)ios10過渡動畫...

  • 黑雷ios模擬器,ios安卓模擬器

    黑雷ios模擬器,ios安卓模擬器 相關圖片ios有電腦模擬器嗎IOS模擬器是一種輔助工具,可以在Mac環境下開發程序和IOS平臺程序。IOS模擬器是Xcode的一部分,Xcode是蘋果自己的IOS開發程序,可以免費下載!I電腦ios模擬器...

關注微信

变脸官网查询