這段時間在做乙個資料管理系統,需要讀取excel**,組裝json,最終存入mongodb,這裡記錄一下解決思路。
需要做的準備工作:
1.安裝accessdatabaseengine
有32bit和64bit兩個版本,具體要安裝哪個要看你的office程式是32bit的還是64bit的。通常來講,一般是選擇與office程式相對應的版本。但是如果你的專案必須在64位下執行,又不想大費周章刪了原有的office程式再重灌,這時候該咋辦呢?在網上找了很久,終於找到了辦法:
(2)等待安裝完成,檢視登錄檔hkey_local_machine\software\microsoft\office\14.0\common\filespaths,刪除mso.dll(此步驟一定要做,檢視登錄檔:開始-執行-regedit-回車)
2.引用newtonsoft.json.dll
準備工作做好後,就可以開始寫**了。
總共三個方法:根據excel檔案獲取所有sheet名稱,獲取每乙個sheet的內容組裝datatable,table轉excel
(1)根據excel檔案獲取所有sheet名稱
1view codepublic list getexcelsheetnames(string
filepath)
2;extended properties='excel 12.0;hdr=yes;imex=2;'
", filepath);
8 connection = new
oledbconnection(connectionstring);
9connection.open();
10 dt = connection.getoledbschematable(oledbschemaguid.tables, null
);11
12if (dt == null)13
1617 string excelsheets = new
string[dt.rows.count];
18int i = 0;19
foreach (datarow row in
dt.rows)
2024
return
excelsheets.distinct().tolist();25}
26catch
(exception ex)
2730
finally
3137
if (dt != null)38
41}42 }
(2)獲取每乙個sheet的內容組裝datatable
1view codepublic datatable getexcelcontent(string filepath, string
sheetname)
2;extended properties='excel 12.0;hdr=no;imex=2;'
", filepath);
7 string commandstring = string.format("
select * from [$]
", sheetname);
8using (oledbconnection connection = new
oledbconnection(connectionstring))
923 table.rows.removeat(0
);24
return
table;25}
26}27 }
(3)table轉excel
1view codepublic
string exceltojson(string
filepath)216
table.add(row);17}
18json.add(tablename, table);
19});
20return
json.tostring();
21 }
最終生成的是json物件,key是sheet名,value是json陣列,為每一張sheet的內容。
C 讀取excel檔案,生成json
這段時間在做乙個資料管理系統,需要讀取excel 組裝json,最終存入mongodb,這裡記錄一下解決思路。需要做的準備工作 1.安裝accessdatabaseengine 有32bit和64bit兩個版本,具體要安裝哪個要看你的office程式是32bit的還是64bit的。通常來講,一般是選...
php 讀取,生成excel檔案
1.讀取檔案的部分內容 用於固定格式 1 public function readexcel filename 16 return data 17 catch exception e 23 readexcel 注 預設從第一行開始,讀取a列和b列,以陣列的形式返回,但是可以自定義。傳入檔案路徑即可 ...
C 生成Excel檔案
1 首先需要 using system.runtime.interopservices using excel microsoft.office.interop.excel using microsoft.office.core 這三個命名空間,定義乙個excelmanager類檔案來管理excel...