-
大小: 26KB文件類型: .cs金幣: 2下載: 1 次發布日期: 2024-01-09
- 語言: C#
- 標簽:
資源簡介
2012,我的C#全能Excel操作(無需Office,不使用XML)
有時候,Excel操作會成為我們程序員的痛處。
COM的方式處理?殺進程?需要安裝Office?
No,nononono!這些都不想了。
我只要OleDb就夠用了。
讀取內容產生DataSet? 沒問題!
創建Excel文件? 沒問題!
在Excel文件中創建Sheet? 沒問題!
我要取出Excel文件中的所有表名? 沒問題!
我要以索引來操作Sheet,不是名字行不? 沒問題!
導出的數據太多,要分開多個Sheet放,行不? 沒問題!
我要再擴展,可不可以? 代碼都給你了,你說呢?
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Data;
using?System.Data.OleDb;
using?System.IO;
namespace?Core.DarrenExcelHelper
{
????///?
????///?描述:對Excel文件的創建表、讀取、寫入數據操作.
????///?程序員:謝堂文(Darren?Xie)
????///?創建日期:
????///?版本:1.0
????///?
????public?static?class?MyExcelUtls
????{
????????#region?取文件的擴展名
????????///?
????????///?取文件的擴展名
????????///?
????????///?文件名稱
????????///?string
????????public?static?string?GetExtFileTypeName(string?FileName)
????????{
????????????string?sFile?=?FileName;//?myFile.PostedFile.FileName;
????????????sFile?=?sFile.Substring(sFile.LastIndexOf(“\\“)?+?1);
????????????sFile?=?sFile.Substring(sFile.LastIndexOf(“.“)).ToLower();
????????????return?sFile;
????????}
????????#endregion
????????#region?檢查一個文件是不是2007版本的Excel文件
????????///?
????????///?檢查一個文件是不是2007版本的Excel文件
????????///?
????????///?文件名稱
????????///?bool
????????public?static?bool?IsExcel2007(string?FileName)
????????{
????????????bool?r;
????????????switch?(GetExtFileTypeName(FileName))
????????????{
????????????????case?“.xls“:
????????????????????r?=?false;
????????????????????break;
????????????????case?“.xlsx“:
????????????????????r?=?true;
????????????????????break;
????????????????default:
????????????????????throw?new?Exception(“你要檢查“?+?FileName?+?“是2007版本的Excel文件還是之前版本的Excel文件,但是這個文件不是一個有效的Excel文件。“);
????????????}
????????????return?r;
????????}
????????#endregion
????????#region?Excel的連接串
????????//Excel的連接串
????????//2007和之前的版本是有區別的,但是新的可以讀取舊的
????????///?
????????///?Excel文件在服務器上的OLE連接字符串
????????///?
????????///?Excel文件在服務器上的路徑
????????///?第一行不是標題:true;第一行是標題:false;
????????///?String
????????public?static?String?GetExcelConnectionString(string?excelFile?bool?no_HDR)
????????{
????????????try
????????????{
????????????????if?(no_HDR)
????????????????{
????????????????????if?(IsExcel2007(excelFile))
????????????????????{
????????????????????????return?“Provider=Microsoft.Ace.OleDb.12.0;“?+?“data?source=“?+?excelFile?+?“;Extended?Properties=‘Excel?12.0;?HDR=NO;?IMEX=1‘“;?//此連接可以操作.xls與.xlsx文件
????????????????????}
????????????????????else
????????????????????{
????????????????????????return?“Provider=Microsoft.Jet.OleDb.4.0;“?+?“data?source=“?+?excelFile?+?“;Extended?Properties=‘Excel?8.0;?HDR=NO;?IMEX=1‘“;?//此連接只能操作Excel2007之前(.xls)文件
????????????????????}
????????????????}
????????????????else
????????????????{
????????????????????return?GetExcelConnectionString(excelFile);
????????????????}
????????????}
????????????catch?(Exception?ee)
????????????{
????????????????throw?new?Exception(ee.Message);
????????????}
????????}
????????///?
????????//
評論
共有 條評論