Databases :: Reading From Excel File With Warning 'number Stored As Text'
Jun 8, 2010
in my application i have to read from an excel files and check the value of every cell i'm using an OleDb connection to open it and reading but i have this issue if some of the cells in the excel sheet is having this warning when i try to read it returns DBNull ??could any one give me a clue ....knowing that i can not force the user for not having this warning ...i have to solve this within my code .
I have some code that reads records from an excel file and then imports that data into an sql database. The issue only happens when the excel file has more then 350 rows in it. In the middle of the import it just stops executing and I get directed to the 'Internet Explorer cannot display the webpage' page or just a blank page when using firefox.
I dont get any time out errors or any error at all but still I tried messing around with the script timeout settings but still does the same thing at about the 2 min 30 sec mark.
I need to be able to read an excel file from a file upload control but I can not save the file to disk first, it must be done in memory.
[Code]....
Above is my code for reading the data file if it IS saved to disk, but again, I have to be able to do this without saving the file to disk, it must be done in memory. I have not been able to find any sample code anywhere on how to do this from memory, everything seems to force the file be uploaded, saved to disk, and then read in the connection string, which again I can not do.
I understand how to use a connection string object to read excel sheets. What I don't know is how to follow a hyperlink inside excel, grab matching data from the linked page and return it to my database. Essentially, the spreadsheet has two columns:
Title | Class#
Class# has the hyperlink which links to an internal web site. The connected page has a course description and any pre-required classes that must be taken before you can take this class. This is where I'm rather stumped as I've not had to do this type of thing before.
I'm trying to read data from a text file into a DataReader object using the following code but I get an exception:
OleDBException was unhandled.
Cannot update. Database or object is read-only.
Also, I would like to know if it is efficient to read data of a text file into a datatable instead of using StreamReader object and traversing through the recordset.
I have a scenario where I have to read an excel file to dump records in a mysql database. The code generates an exception Sheet1 not found. I have pasted the code below. Please let me know the solution to the exception. I have given the correct read/write/modify settings to my excel file.
if (fileUpload1.PostedFile.FileName.EndsWith(".xls") || fileUpload1.PostedFile.FileName.EndsWith(".XLS")) { string fileName = Server.MapPath(fileUpload1.PostedFile.FileName); string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=Excel 8.0"; // Create the connection object OleDbConnection oledbConn = new OleDbConnection(connString); try { // Open connection oledbConn.Open(); // Create OleDbCommand object and select data from worksheet Sheet1 OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]" , oledbConn); // Create new OleDbDataAdapter OleDbDataAdapter oleda = new OleDbDataAdapter(); oleda.SelectCommand = cmd; // Create a DataSet which will hold the data extracted from the worksheet. DataSet ds = new DataSet(); // Fill the DataSet from the data extracted from the worksheet. oleda.Fill(ds, "RestaurantExcelData"); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { Response.Write("Data: " + ds.Tables[0].Rows[i].ItemArray[0].ToString() + ""); } } catch(Exception e1) { } finally { // Close connection oledbConn.Close(); } } else { Response.Write("File Not Excel (xls||XLS)"); }
I am attempting to read data from an uploaded spreadsheet using ACE.OLEDB. The code, which is running fine on dev and test machines for XL2003/2007 reports "Exernal table is not in the expected format" error on connecting on the production server for XL2007 only.The code is
Dim connectionString As String = "provider=Microsoft.Ace.OLEDB.12.0;" _ & "Data Source='" & ImportData.FullName & "';Extended Properties=Excel 12.0;" LogWebActivity.LogThis("Entering POPSUKD, ConStr=" & connectionString, LogWebActivity.LogDetailLevel.DetailAndData) Dim con As New System.Data.OleDb.OleDbConnection(connectionString) LogWebActivity.LogThis("Dimmed con", LogWebActivity.LogDetailLevel.Debugging) Try Dim cmdSelect As New System.Data.OleDb.OleDbCommand("SELECT * FROM [" & WorksheetName & "$]", con) Dim adapter As New System.Data.OleDb.OleDbDataAdapter(cmdSelect) Dim dS As New Data.DataSet LogWebActivity.LogThis(cmdSelect.CommandText, LogWebActivity.LogDetailLevel.Debugging) con.Open() LogWebActivity.LogThis("Opened Connection", LogWebActivity.LogDetailLevel.Debugging) adapter.Fill(dS, WorksheetName) LogWebActivity.LogThis("Filled DataAdapter", LogWebActivity.LogDetailLevel.Debugging) _SKUS = dS.Tables(WorksheetName) LogWebActivity.LogThis("Set SKUS", LogWebActivity.LogDetailLevel.Debugging)
Want to create a web based application for reading and writing excel files.
Issue :
1. Want to upload an excel file and store it some location. 2. Read data from excel file, performing some sorting and filtering 3. Write filtered data to new excel file.
My web app is allowing the user to load a column of data from an Excel spreadsheet. For whatever reason, as it parses the data, fields that are just integers are coming up as System.DBNull. (Code in VB.NET but I work with C# as well, so feel free to post C# solutions)
[Code]....
dataRow(0) is System.DBNull when the Excel file has a number in Column A. Here's what the Excel looks like
Column A 100S200 WEIRD ABCDEFG 123456 100S12791 119655902 100S12792 105E17530 123456 and 119655902 come through as DBNull
I have an application whereby a user browses to an Ajax enabled page, sets up some filters, and then clicks on download report. When the user clicks on this button, they are redirected to a Download.aspx page, which builds up the report and appends it to the response as binary (the file may either be zip/pdf or excel). The issue I am having is that everytime the user goes to the page and hits the download button the warning message from IE pops up "To help protect your security internet explorer has blocked this site from download files to your computer". This is not a huge issue, but the problem is that when the user clicks this warning to accept the file, it reloads the page, and all my filters are lost, so the user has to set up all the filters to filter out the data they dont want and then re-download the file.
The interesting thing is that I thought I could track the filters using session variables, so that when the page reloads after accepting the warning message it could be restored, but IE for some reason is not loading the page in the way it should, and so the Page_Load method is never fired when IE reloads it after the user accepting the warning, so I cannot restore the filter settings on the page because I have no event to do it from!
I have searched and searched for a solution.. I have tried changing the mime headers - I am using content-disposition tag set to "attachment; filename=report.zip", I have tried changing the mime type descriptions to different things to see if I can avoid the warning but to no avail. I have tried using an iframe but couldnt quite get it to do what I want it to do, the page was still being refreshed..
I have a page within our site that allows admin users the ability to upload configuration settings into the system instead of submitting 1 at a time.
While testing yesterday, i found that one of the upload pages allowed me to upload a excel file that had alot more columns than expected and when i checked the database, the first few columns that were expected took the values from the file, and everything else was ignored, but wanted to see if there is any way to check the number of columns in the file to make sure it matches the upload logic before accepting it.
Now I need to load the CSV in C # and column 3 to distinguish what the operation is carried out.When the load line in column 3 contain the value 1, so will save the table 'Cats' when the value 2 and is saved in the table "Dogs".(Note: Data are separated ";")
In my application i want to share one .txt for read and write among no. of users. in Button click i m writing data in that file and in tick event of Timer i m reading that file, In tick event i m reading that file based on file based cachin means if file have been changed then only i m reading that file but when i have put m application i IIS then i m not able to get updated file.
In my application, i have one fileupload control which will take excel file. I want to read this excel file and want to store in datatable. How will i do this. I am using visual studio 2008.
I have an input type, so a text box which has a browse button next to it. When it is clicked, the file that is selected has it's full path placed into the text box.
Now that I have the path to the file in the textbox of the input type, I want to load each line of this file into a textbox that is able to handle multiline text.
I don't want the file to be uploaded to the website. I just want to contents of the file read and placed in a textbox all with one click on the browse button.
I'm trying to read the contents of a text file into a text box on my form. When I run the following code, nothing happens.
VB.NET Code: Protected Sub lbLogs_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles lbLogs.SelectedIndexChanged For Each li As ListItem In lbLogs.Items If li.Selected Then Using sw As New StreamReader(li.Value) txtLog.Text = sw.ReadToEnd sw.Close() End Using End If Next End Sub
I populate the ListBox with ListItems and each ListItem's Value property holds the full path to the file. But, I removed all of that and just put txtLog.Text = "test" inside of the "is selected" block.
I am reading a CSV file created by Excel. the string I am reading needs to be encoded (it shows small boxes instead of hebrew characters) so I wrote a lil routine to convert the string -
Function encodeName(ByVal name As String) As String Dim src As Encoding = Encoding.UTF8 Dim dest As Encoding = Encoding.Default Dim srcBytes() As Byte srcBytes = src.GetBytes(name) Dim asciiBytes() As Byte = Encoding.Convert(src, dest, srcBytes) Dim mychars(dest.GetCharCount(asciiBytes) - 1) As Char dest.GetChars(asciiBytes, 0, asciiBytes.Length, mychars, 0) Dim asciiString As New String(mychars) End Function
From what I read FileStream.ReadLine reads the text with encoding UTF8 so I try to convert from UTF8 to Encoding.Default buy instead of little boxes I get question marks.
I am reading an excel file in C#.NET. The data is being read successfully but there is problem with some hyperlinks stored in the excel file. I can read their text but i dont know how to get the underlying link/url of the column. I couldnt find much help on google as well. if someone has worked in a similar situation please let me know what can be done.edit::: i am using OleDb namespace for establishing a connection with the Excel file so if someone can post a solution which applies to this situation