winform读取excel文件(c# 读取excel文件)

2024-06-28 12:04:19 3

winform读取excel文件(c# 读取excel文件)

本文目录

c# 读取excel文件

在C#代码中,spire提供了可通过文档格式转换的方法,将excel文件内容读取到.txt文档,代码如下:

using Spire.Xls;

namespace Excel_to_Txt

{

    class Program

    {

        static void Main(string args)

        {

            Workbook workbook = new Workbook();

            workbook.LoadFromFile(@"..\ExceltoTxt.xls");

            Worksheet sheet = workbook.Worksheets;

            sheet.SaveToFile("ExceltoTxt.txt", " ", Encoding.UTF8);

        }

    }

}

c# winform 中导入Excel 的问题 !

导入命名空间:using System.Data.OleDb; OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties=Excel 8.0;"); conn.Open(); string strExcel = ""; OleDbDataAdapter myCommand = null; strExcel = string.Format("select * from ", comboBox1.Text); myCommand = new OleDbDataAdapter(strExcel, "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties=Excel 8.0;"); myCommand.Fill(ds, comboBox1.Text);Filepath为选择的excel文件本地路径

C#如何实现读取和显示excel表格中的数据

读取Excel首先你在引用中得引用Microsoft office Excel 20** 对应的dll文件,才能读取到Excel的数据\x0d\x0a在类里面引用:System.Data.OleDb;\x0d\x0a\x0d\x0astatic public DataSet ExcelToDataSet(string filename)\x0d\x0a {\x0d\x0a DataSet ds;\x0d\x0a string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" +\x0d\x0a "Extended Properties=Excel 8.0;" +\x0d\x0a "data source=" + filename;\x0d\x0a OleDbConnection myConn = new OleDbConnection(strCon);\x0d\x0a string strCom = " SELECT * FROM ";\x0d\x0a myConn.Open();\x0d\x0a OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);\x0d\x0a ds = new DataSet();\x0d\x0a myCommand.Fill(ds);\x0d\x0a myConn.Close();\x0d\x0a return ds;\x0d\x0a }\x0d\x0a这个方法返回一个数据读取的数据原给你的datagridview

c#如何在winform中打开一个excel文档呢

下载一个DsoFramer.ocx,然后用regsvr32 path\DsoFramer.ocx注册一下,path指dsoframer.ocx的路径。在vs.net 工具栏中添加这个com组件。将控件拖到窗体上,用组件的CreateNew方法可能从模板或通过"Excel.Sheet"创建Excel工作表了。你还可通过组件的getApplication方法得到服务器,对工作表进行任意操作。

.net winform怎么获取excel中单元格的值

DataSet ds; string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=Excel 8.0;" + "data source=" + filename; OleDbConnection myConn = new OleDbConnection(strCon); string strCom = " SELECT * FROM "; myConn.Open(); OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn); ds = new DataSet(); myCommand.Fill(ds); myConn.Close();这下你就可以去ds里面读取你要的值了。这样做其实不是太好,有个组件NPOI你可以用这个读取

怎样用C#读取Excel文件

命名空间:using System.Data.OleDb;

另注:

参数:HDR=NO/YES

OleDb读入一个Excel工作表(Sheet)的数据后,工作表的第一行会变成标题,第二行起,逐行变为DataTable的一个数据行(Row)

以下是代码:

//根据excle的路径把第一个sheel中的内容放入datatable        public static DataTable ReadExcelToTable(string path)//excel存放的路径        {            try            {                //连接字符串                string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=’Excel 8.0;HDR=NO;IMEX=1’;"; // Office 07及以上版本 不能出现多余的空格 而且分号注意                //string connstring = Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + path + ";Extended Properties=’Excel 8.0;HDR=NO;IMEX=1’;"; //Office 07以下版本                using (OleDbConnection conn = new OleDbConnection(connstring))                {                    conn.Open();                    DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object { null, null, null, "Table" }); //得到所有sheet的名字                    string firstSheetName = sheetsName.Rows.ToString(); //得到第一个sheet的名字                    string sql = string.Format("SELECT * FROM ", firstSheetName); //查询字符串//string sql = string.Format("SELECT * FROM is not null", firstSheetName); //查询字符串OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);                    DataSet set = new DataSet();                    ada.Fill(set);                    return set.Tables;                }            }            catch (Exception)            {                return null;            }        }

项目中还可以结合流文件(fileStream)的操作,检查每一行数据,数据类型等,一行一行的插入到DB的表,使用DataTable的目的就是为了检查excel的行列数(主要是列数)是否符合要求,比如今天的测试中,  

网友有个说法:string sqlExcel = ("select * from "); sheet$后面是范围A3到D8的 如果行不确定 要取到后面行  就把D8改成D

后来看到的,所以还没测试,

以上这个问题我也在想,是不是excel里面sheet的活动界面的问题,select * from 选取了所有的列数,所以导致可能DaTaTable导致空列,建议在DaTaTable进行删改,或者用datagrid修改,随后保存修改到DATATABLE中。

***隐藏网址***

另外对于参数connstring字符串的标准,

1)HDR表示要把第一行作为数据还是作为列名,作为数据用HDR=no,作为列名用HDR=yes;

使用 Excel 工作簿时,默认情况下,区域中的第一行是标题行(或字段名称)。如果第一个区域不包含标题,您可以在连接字符串的扩展属性中指定 HDR=NO。如果您在连接字符串中指定 HDR=NO,Jet OLE DB 提供程序将自动为您命名字段(不管excel中的列叫什么名字,F1 表示第一个字段,F2 表示第二个字段,依此类推,select F1,F2 from );

2)IMEX=1将所有读入数据看作字符,其他值(0、2)请查阅相关帮助文档;

3)如果出现“找不到可安装的isam”错误,一般是连接字符串错误

string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=’Excel 8.0;HDR=NO;IMEX=1’;";

HDR表示要把第一行作为数据还是作为列名,作为数据用HDR=no,作为列名用HDR=yes;

string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=’Excel 8.0;HDR=YES;IMEX=1’;";

接着继续:

这里出现的问题是:

很容易造成读入很多的空行到datatable中,比如下面的excel,我们基本上看不出到底有多少实际的行数:

string sql = string.Format("SELECT * FROM ", firstSheetName); //查询字符串

string sql = string.Format("SELECT * FROM is not null", firstSheetName); //查询字符串,字段名注意一定要和excel中标题名一致,有空格哦~

note:这时HDR参数必须是YES,否则会报异常

***隐藏网址***

Excel读取存在空白的原因:表格有两个后台属性,分别是已使用的最大行数和已使用的最大列数。这个 adapter可能是按这两个属性来的,没法改。读取代码部分如图所示,图示为主要解析Excel到DataTable.经过仔细监视代码我们会发现在 da.Fill(dt)时,把空白行填充到DataTable了。总体来讲这个是有微软提供的方法和规则,那么是没办法改的。

解决办法有以下几个:

1、在读取的时候SQL语句上进行过滤:Select * From  SheetName where col1 is not null and col2 is not null 在读取的过程时,对空白行进行非空顾虑,建议过滤非空时,根据业务,把不可为空的Excel中的列作为col1和col2;当然可以先删除空白行后再进行 读取;总之先把空白行在读取到Excel前除掉;

2、在读取Excel到DataTable后再过滤掉空白行;DataTable空白行处理空白行方法应该很多的;但是在进行业务校验的时候一定需要先删除空白行!

如何用winform向excel中插入数据,就好像把excel当作数据库是一样的,我只会BS的 CS不会写 求教

这里我用了Execl.dll的方式导出,不过这种方式用很大的弊端...貌似要根据office版本来确定引用的类...ps:我也不太明白第一步引用命名空间关于这个命名空间晚上的资料多大直接都写的是using Excel;private void doExport(DataTable dt, string strSheetName) { Excel.Application excel = new Excel.Application(); //Execl的操作类 //读取保存目标的对象 Excel.Workbook bookDest = (Excel.WorkbookClass)excel.Workbooks.Add(Missing.Value); Excel.Worksheet sheetDest = bookDest.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;//给工作薄添加一个Sheet sheetDest.Name = strSheetName;//自己定义名字O(∩_∩)O哈哈~ int rowIndex = 1; int colIndex = 0; excel.Application.Workbooks.Add(true);//这句不写不知道会不会报错 foreach (DataColumn col in dt.Columns) { colIndex++; sheetDest.Cells = col.ColumnName;//Execl中的第一列,把DataTable的列名先导进去 } //导入数据行 foreach (DataRow row in dt.Rows) { rowIndex++; colIndex = 0; foreach (DataColumn col in dt.Columns) { colIndex++; sheetDest.Cells.ToString(); } } bookDest.Saved = true; bookDest.SaveCopyAs("要保存的文件路径+文件名.xls");//方式一 excel.Quit(); excel = null; GC.Collect();//垃圾回收 }

C#Winform怎么将excel一列数据导入程序中

我这个是导入到DataGridView希望对你有用。 private void btImport_Click(object sender, EventArgs e) { try { lbmation.Visible = true; dgvWayBill.Columns.Visible = false; string strFileNamePath = string.Empty; OpenFileDialog ofdShowDialog = new OpenFileDialog(); ofdShowDialog.FileName = ""; ofdShowDialog.Title = "请选择要导入的Excel文件,导入EXCEL文件的工作表名必须是Sheet1"; ofdShowDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); ofdShowDialog.Filter = "Excel文件(*.xls)|*.xls"; ofdShowDialog.CheckFileExists = true; ofdShowDialog.CheckPathExists = true; if (ofdShowDialog.ShowDialog() == DialogResult.OK) strFileNamePath = ofdShowDialog.FileName; if (string.IsNullOrEmpty(strFileNamePath)) { MessageBox.Show("请选择要导入的文件", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string strFileName = "Sheet1"; OleDbDataAccess odaData = new OleDbDataAccess(strFileNamePath); DataSet dsImport = new DataSet(); dsImport = odaData.ReadExcelData(strFileName); if (DataSetUtil.IsNull(dsImport) || DataTableUtil.IsNull(dsImport.Tables)) return; DataBind(dsImport); MessageBox.Show("导入成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); lbmation.Visible = false; } catch (Exception ex) { MessageBox.Show("导入失败,失败原因:" + ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } //导入数据放到DataDridView中 private void DataBind(DataSet dsImport) {//这里你想将数据放到哪个控件里去就直接将数据源设置为dsImport.table就可以了。}

C# 读取EXCEL文件的三种经典方法

可采用Spire.XLS类库读取Excel文件,代码简洁易懂,方法灵活多样,比如可以读取Excel文档的全部或部分单元格数据到datatable,也可以通过判断单元格类型来读取对应的数据。读取到datatable://加载Excel文档Workbook workbook = new Workbook();workbook.LoadFromFile(@"F:\ExportData.xlsx");//获取第一张sheetWorksheet sheet = workbook.Worksheets;//设置读取的range范围CellRange range = sheet.Range;//读取到datatableDataTable dt = sheet.ExportDataTable(range, true, true);

winform读取excel文件(c# 读取excel文件)

本文编辑:admin

更多文章:


rejuvenate(resfeber字符是什么意思)

rejuvenate(resfeber字符是什么意思)

本文目录resfeber字符是什么意思rejuvenating是什么意思rejuvenate和revitalize区别rejuvenate 的意思,用法resfeber字符是什么意思没有resfeber的单词,应是:Refresh,意思是:

2023年6月4日 12:20

flipped读后感(电影观后感英文简单点)

flipped读后感(电影观后感英文简单点)

本文目录电影观后感英文简单点flipped 的英文读后感,,,急求电影观后感英文简单点My Favorite Movie我最喜欢的电影.Among so many films I have watched,the one I like be

2023年10月23日 09:20

网络模块图片(家里的弱电箱里面有一个带一个in和4个out接口的网络模块,请问怎么连接才能使两台电脑同时上网)

网络模块图片(家里的弱电箱里面有一个带一个in和4个out接口的网络模块,请问怎么连接才能使两台电脑同时上网)

本文目录家里的弱电箱里面有一个带一个in和4个out接口的网络模块,请问怎么连接才能使两台电脑同时上网200m宽带光纤入户,如何选择网络布线WG222可以连入5g网络吗为什么QQ空间的新建模块添加网络图片总是不能显示图片 而且图片连接是空间

2024年7月21日 09:57

centos发音(如何判断linux是debian)

centos发音(如何判断linux是debian)

各位老铁们,大家好,今天由我来为大家分享centos发音,以及如何判断linux是debian的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录如何判

2024年7月4日 02:05

array push back(怎样使用vector存放结构体数组的值呢是push_back() 还是直接下标赋值呢 怎么用push_back)

array push back(怎样使用vector存放结构体数组的值呢是push_back() 还是直接下标赋值呢 怎么用push_back)

各位老铁们,大家好,今天由我来为大家分享array push back,以及怎样使用vector存放结构体数组的值呢是push_back() 还是直接下标赋值呢 怎么用push_back的相关问题知识,希望对大家有所帮助。如果可以帮助到大家

2024年8月31日 10:35

ppt模板背景图片简约(职场中如何设计出一份简约型的PPT封面)

ppt模板背景图片简约(职场中如何设计出一份简约型的PPT封面)

本文目录职场中如何设计出一份简约型的PPT封面如何制作公司简介PPT模板寻找一款有关于业务报告的PPT模板,大家有哪些可以分享一下哪些平台可以找到画面简洁的PPT模板职场中如何设计出一份简约型的PPT封面简约型的PPT封面基本就包括背景和文

2023年9月18日 21:40

git可视化工具(sourcetreeGit可视化操作安装失败出现的状况)

git可视化工具(sourcetreeGit可视化操作安装失败出现的状况)

本文目录sourcetreeGit可视化操作安装失败出现的状况sublime merge 是什么东西Pro GitBook 中文版PDF的乱码问题怎么解决软件git,github for window,tortoisegit有什么区别and

2024年6月25日 05:21

dilemma歌曲(Dilemma的介绍)

dilemma歌曲(Dilemma的介绍)

本文目录Dilemma的介绍Dilemma的歌曲鉴赏Nelly(Ft.Kelly Rowland)的《Dilemma》 歌词Dilemma的中文歌词Kelly Rowland的《Dilemma》 歌词Nelly的《Dilemma》 歌词Di

2024年7月7日 18:58

计算器逻辑运算(计算机中进行算术运算和逻辑运算的主要部件是)

计算器逻辑运算(计算机中进行算术运算和逻辑运算的主要部件是)

“计算器逻辑运算”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看计算器逻辑运算(计算机中进行算术运算和逻辑运算的主要部件是)!本文目录计算机中进行算术运算和逻辑运算的主要部件是普通计算器是怎样运算加减乘除的计算器中的“INV

2024年7月26日 00:15

html里header是啥意思(header(“Contenttype:text/htmlcharset=utf-8“)什么意思)

html里header是啥意思(header(“Contenttype:text/htmlcharset=utf-8“)什么意思)

本文目录header(“Contenttype:text/htmlcharset=utf-8“)什么意思html中 区别是什么main.header.inc.html在html中什么意思header元素和head元素有什么区别header(

2024年6月24日 03:09

小时代青木时代(小时代2为什么叫青木时代而不是虚铜时代)

小时代青木时代(小时代2为什么叫青木时代而不是虚铜时代)

本文目录小时代2为什么叫青木时代而不是虚铜时代为什么小时代2叫青木时代啊郭敬明、小时代的第2部到底是《虚铜时代》还是《青木时代》如何评价电影《小时代2:青木时代》小时代青木时代是什么意思小时代2青木时代经典台词对白小时代2青木时代经典台词小

2024年6月28日 10:52

vagrant歌曲是什么风格(vagrant这首歌是不是写给lol亚索和瑞文的)

vagrant歌曲是什么风格(vagrant这首歌是不是写给lol亚索和瑞文的)

大家好,关于vagrant歌曲是什么风格很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于vagrant这首歌是不是写给lol亚索和瑞文的的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站

2024年8月21日 08:01

openstack在官网怎么下(openstack horizon开发环境搭建运行run_tests报错No module named config)

openstack在官网怎么下(openstack horizon开发环境搭建运行run_tests报错No module named config)

本文目录openstack horizon开发环境搭建运行run_tests报错No module named config怎样调试OpenStack-Java怎样创建一个OpenStack官方账号openstack horizon开发环境

2024年7月7日 00:42

在线转换pdf转word(3种快速在线将PDF转换成Word(Doc)格式文件文档方法)

在线转换pdf转word(3种快速在线将PDF转换成Word(Doc)格式文件文档方法)

本文目录3种快速在线将PDF转换成Word(Doc)格式文件文档方法将pdf转word在线怎么转换怎样将PDF格式转化为WORDpdf怎么转换成word怎样将pdf在线转换成word怎么快速把pdf转换wordpdf怎么在线转换成word3

2024年7月22日 20:50

聊天机器人api(python写微信聊天机器人,求助)

聊天机器人api(python写微信聊天机器人,求助)

本文目录python写微信聊天机器人,求助如何和自动聊天机器人聊天有哪些API接口可以用来做聊天机器人我想用PHP做一个聊天机器人,我调用别人的API实现了中文分词,我要怎样构建自己的数据库呢关于智能聊天机器人目前最好的实现机制是不是使用A

2024年7月21日 04:08

bootcamp翻译(《三角洲4》的一些英文希望英语大侠们帮我翻译一下!希望英语和汉语一一对应,顺序别乱了谢谢了!)

bootcamp翻译(《三角洲4》的一些英文希望英语大侠们帮我翻译一下!希望英语和汉语一一对应,顺序别乱了谢谢了!)

本文目录《三角洲4》的一些英文希望英语大侠们帮我翻译一下!希望英语和汉语一一对应,顺序别乱了谢谢了!为什么mac版本office word没有翻译功能《三角洲4》的一些英文希望英语大侠们帮我翻译一下!希望英语和汉语一一对应,顺序别乱了谢谢了

2024年4月12日 16:25

beaver是什么意思(beαver什么意思)

beaver是什么意思(beαver什么意思)

本文目录beαver什么意思eager beaver什么意思beaver是什么意思“beaver“是什么意思beαver什么意思beaver 英[ˈbiːvə(r)] 美[ˈbiːvər] n. 河狸,海狸(水栖啮齿

2024年6月25日 05:17

失眠图片带字可爱图片(昨晚失眠,今晚睡早一点的图片及优美句子)

失眠图片带字可爱图片(昨晚失眠,今晚睡早一点的图片及优美句子)

本文目录昨晚失眠,今晚睡早一点的图片及优美句子失眠应该怎么晒朋友圈睡不着的带字搞笑图片失眠是怎么回事失眠图片失眠怎么办失眠和什么的原因有关生活中如何缓解失眠适合失眠发朋友圈的句子和图片昨晚失眠,今晚睡早一点的图片及优美句子  1、一个人最孤

2024年7月13日 06:16

destroyed翻译(打死的,打掉的用英语怎么样翻译)

destroyed翻译(打死的,打掉的用英语怎么样翻译)

本文目录打死的,打掉的用英语怎么样翻译destroy是什么意思人道毁灭的英文,人道毁灭的翻译,怎么用英语翻译人道破坏用英语怎么说“destroy”和“damage ruin hurt harm”的区别是什么destroy和destory有什

2024年7月6日 04:53

集合的tostring方法(为什么直接打印java集合对象打印出来的不是哈希码,而是里面存储值)

集合的tostring方法(为什么直接打印java集合对象打印出来的不是哈希码,而是里面存储值)

这篇文章给大家聊聊关于集合的tostring方法,以及为什么直接打印java集合对象打印出来的不是哈希码,而是里面存储值对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录为什么直接打印java集合对象打印出来的不是哈希码,而是里

2024年9月1日 01:45

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索