Tag: oledb

读取Excel文件

我正在写一些代码来读取一个Excel文件,但不幸的是,Excel文件包含超过300列,我需要阅读所有300。 我一直在使用一些第三部分库来完成这个LinqToExcel,但是他们最多只能读取256列 var excel = new ExcelQueryFactory(FileName); var recs = (from ws in excel.Worksheet<Sample>("data export final") select ws).ToList() 有谁知道我怎么可以读取所有300列,最好不必安装Microst Office,因为这将运行在没有安装的服务器上

更新Excel工作表:无法更新“(expression式)”; 字段不可更新

好的,我是.NET新手,在使用ACE.OLEDB连接更改Excel工作表中的更新值时遇到了问题。 我不断收到错误:无法更新'(expression式)'; 字段不可更新。 所以我的工作表的结构如下所示: Symbol AssetClass MarketValue SharePrice ABC formula $1000 $10.50 MSFT formula $2000 $12 公式字段包含一个公式,该公式在另一个Excel工作簿中查找符号,然后获取其资产类别。 问题是它不允许我更新该字段。 我将列的格式改为文本,看是否是问题,但没有改变。 我不知道为什么我不能像添加文本一样添加公式 这里是我的代码如下: Private m_sConn1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PATH_Workbook1 & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;MAXSCANROWS=3;READONLY=FALSE\""" Dim conn As New OleDbConnection(m_sConn1) conn.Open() Dim cmd As New OleDbCommand() cmd.Connection = conn Dim da As New OleDbDataAdapter("Select * […]

阅读excel中的所有列

如何阅读空白栏的Excel电子表格。 我有以下格式的电子表格: 我想用这段代码读取excel文件: string query = "SELECT * FROM [Sheet1$]"; using (OleDbConnection connection = new OleDbConnection(connString)) { connection.Open(); OleDbCommand command = new OleDbCommand(query, connection); OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) { //Do something } } 但它只读取起始2列的数据,而不是剩余的。 我如何读取所有列的数据?

无法使用OLEDB创buildExcel文件C#

string TempFileLocation="Filelocation"; string tempfilename ="FileName"; string TabName ="TabName"; string xConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" +TempFileLocation+ tempfilename +".xls;Extended Properties='Excel 8.0;HDR=YES'"; var conn = new OleDbConnection(xConnStr); string ColumnName ="[columename] varchar(255)" conn.Open(); var cmd = new OleDbCommand("CREATE TABLE [" + TabName + "] (" + ColumnName + ")", conn); cmd.ExecuteNonQuery(); conn.Close(); 我使用上面的代码来创build表,但它不允许我创build超过64个字符的ColumnName。 请给我这个问题的解决办法。

我怎样才能将所有行转换为txt文件?

我已经有了从.xls到.txt的转换代码。 但问题是,它只输出一行,并停止。 我需要添加代码来读取所有行并将其转换为txt文件? 这里是我的代码如下: using (OleDbConnection cn = new OleDbConnection()) { using (OleDbCommand cmd = new OleDbCommand()) { cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:\Users\jediablaza\Documents\EDIExcel\EDIExcel.xls" + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";"; cmd.Connection = cn; cmd.CommandText = "SELECT * from [Sheet1$]"; using (OleDbDataAdapter adp = new OleDbDataAdapter(cmd)) { DataTable dt = new DataTable(); adp.Fill(dt); using (StreamWriter wr = new […]

从Excel导入到数据集时,为列值插入NULL

我正在导入excel数据到我的应用程序中的数据表,并面临一些特定列值的问题。 excel表单列CustomerUniqID中的某些单元格显示angular落中带有绿色标记的警告。 该号码格式化为文本或在撇号之前。 从Excel工作表填充数据集时,这些单元格值不会导入并显示空白值。 Dim query As String = "SELECT CINT(CustomerUniqID),[Status] FROM [Sheet1$]" Dim conn As New OleDbConnection(conStr) If conn.State = ConnectionState.Closed Then conn.Open() End If Dim cmd As New OleDbCommand(query, conn) Dim da As New OleDbDataAdapter(cmd) Dim ds As New DataSet() da.Fill(ds) 我的连接string是 <add name ="Excel07ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=2'"/> CustomerUniqID列包含数字,我无法导入这些单元格的值。 这个怎么做 ?

VSTO合并单元格

在VSTO(/ JET OLEDB或其他读取excel文件的方法)中有任何方法来判断数据是来自单个单元格还是合并的单元格范围,并得到这个范围?

通过OleDb Excel显示数字不同…取决于电子表格是否打开?

我打开Excel工作表到一个使用OleDb DataTable像这样: string select = string.Format("SELECT * FROM [{0}$]", worksheetName); using (var con = new OleDbConnection(connectionString)) using (var adapter = new OleDbDataAdapter(select, con)) { con.Open(); var dt = new DataTable(); adapter.Fill(dt); con.Close(); return dt; } 然后循环遍历DataTable的各行读取各种数据,如下所示: decimal charge; bool isChargeReadable = decimal.TryParse(row["Charge"].ToString(), out charge); 我刚才发现,我的代码在美元数量的单元格上窒息,例如“$ 1100.00”,它不能parsing为十进制数。 没有那么令人惊讶,只是这是刚刚完成工作的代码。 进一步的调查显示,如果我在工作簿打开的情况下运行此代码,则会将其中一个单元格视为“1100”。 如果我在工作簿closures时运行它,则会看到“$ 1100.00”。 为什么发生这种情况? 很明显,我将不得不重做我的代码才能在工作簿closures的情况下运行,但是为什么它会起作用呢? 我会认为这只是读取保存的工作簿。 我正在使用的连接string是… "Provider=Microsoft.Jet.OLEDB.4.0; […]

使用oledb和C#在Excel表格中创build一个命名范围

我正在尝试使用c#和oledb在Excel表格中创build一个命名区域。 我不想使用这个COM对象interops。 尽pipe从命名范围读取stream行,但我还没有find任何执行此任务的在线示例。 背景是,我将有这个Excel工作簿中的各种工作表中的下拉列表中使用的外部数据(来自Sql数据库表的Xml片段),直到Excel文件被select并打开后,其值才会知道由程序。 部分工作簿的预处理是创build并加载这些下拉列表。 创build将在隐藏工作表创build命名区域,然后创build其他工作表上的下拉列表,引用命名的范围(我不知道我可以做到这一点,而不诉诸于COM互操作,但我尝试我必须)。

Excel SQL语法JET OleDB参考?

我正在使用Jet驱动程序从.NET应用程序查询Excel工作表。 在Excel文件上是否有SQL的任何资源,包括: 格式,数据types,DataConversions,支持的语句…? 谢谢