|
But the same problem occurs when i try it from different computer.
Deepak Anish
Computer Programmer
Maxumise Fiji Ltd
Suva, Fiji
|
|
|
|
|
Check your file paths etc as has already been suggested.
...Steve
1. quod erat demonstrandum
2. "Give a man a fish and you've fed him for a day. Teach him how to fish and you've fed him for life." I read that somewhere once
(Translation: I'll show you the way, but not write the code for you.)
|
|
|
|
|
No, when you try it from a different computer, it won't work at all, as I explained.
Use the uploaded data instead of trying to access the file directly.
---
b { font-weight: normal; }
|
|
|
|
|
This is a general question which I am looking to the experts for advice. My need is to be able to read/write, primarily read from Excel files.
I am comfortable using SQL, ODBC, DataSets, etc. Looking at the C# articles it seems you have two choices:
1) For direct access, use the Excel Object Library - (which incidentally, which DLL is this anyway?)
2) For SQL like access you can use Ole DB
I have started playing with the Ole DB solution. Decent way of getting it done, reasonably fast, but I wonder about the long term viability of using this approach? I would like to be able to simply define a custom DataSet that matches the rows/columns in the spreadsheet. Then using an Adapter.Fill() command to load. I am still experimenting.
So I am thinking about going the direct access via the Excel object library but I cannot determine what exe or dll to load and then refernce. I have scanned the MS site to no avail. Any advice here is definitely appreciated.
Thanks a bunch!
Mike Luster
CTI/IVR/Telephony SME
|
|
|
|
|
You really don't need to know what the dll name is to reference the Excel object. Just right mouse on references in the Solution Explorer and click on Add Reference. Click on the COM tab and choose the Microsoft Excell 11.0 Object Library and click on select.
Add the following to your form's constructor:
<br />
ExcelObj = new Excel.Application();<br />
<br />
if (ExcelObj == null)<br />
{<br />
MessageBox.Show("ERROR: EXCEL couldn't be started!");<br />
System.Windows.Forms.Application.Exit();<br />
}<br />
<br />
ExcelObj.Visible = false;<br />
Add, ExcelObj.Quit();, to the form's dispose method so Excel will shutdown when you application shut's down. If you don't do this then you flood your system Excel's in your task manager.
Here is the code you need to open an Excel workbook and display it's worksheet.
<br />
private void DispSheets(string FileName)<br />
{<br />
theWorkbook = ExcelObj.Workbooks.Open(<br />
FileName, 0, true, 5,<br />
"", "", true, Excel.XlPlatform.xlWindows, "\t", false, false,<br />
0, true, 0, 0);<br />
<br />
foreach (Excel.Worksheet WrkSht in theWorkbook.Worksheets)<br />
{<br />
this.lstWrkSheets.Items.Add(WrkSht.Name);<br />
} <br />
}<br />
You can use the next two methods to read data from an excel spreadsheet iinto a list box.
<br />
private void btnShowData_Click(object sender, System.EventArgs e)<br />
{<br />
int iFirst = 0;<br />
int iLines = 0;<br />
this.lstXLSData.Items.Clear();<br />
<br />
Excel.Sheets sheets = theWorkbook.Worksheets;<br />
<br />
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(this.lstWrkSheets.SelectedIndex+1);<br />
<br />
iFirst = RowStart();<br />
<br />
iLines = 25;<br />
<br />
for (int i = iFirst; i <= iLines; i++)<br />
{ <br />
Excel.Range range = worksheet.get_Range(this.cmbStartCol.Text + i.ToString(),<br />
this.cmbEndCol.Text + i.ToString());<br />
System.Array myvalues = (System.Array)range.Cells.Value2;<br />
string[] strArray = ConvertToStringArray(myvalues);<br />
this.lstXLSData.Items.Add(new ListViewItem(strArray));<br />
}<br />
}<br />
private string[] ConvertToStringArray(System.Array values)<br />
{ <br />
string[] theArray = new string[values.Length];<br />
<br />
for (int i = 1; i <= values.Length; i++)<br />
{<br />
if (values.GetValue(1, i) == null)<br />
theArray[i-1] = "";<br />
else<br />
theArray[i-1] = (string)values.GetValue(1, i).ToString();<br />
}<br />
<br />
return theArray;<br />
}<br />
I hope this information helps you!
I reject your reality and substitute my own!
- Adam Savage, Mythbuster
-George W Bush
life is like a roll of toilet paper. The closer it gets to the end, the faster it goes.
My definition of an expert in any field is a person who knows enough about what's really going on to be scared.
- PJ Plauger
|
|
|
|
|
Thanks for the example code. Using the Ole DB interface is alot more abstract so I like the idea of using the Excel object model. However when I try to add the reference I do not have the Microsoft Excel 11.0 Object Lbrary. That is why I was asking about the DLL. Do I need to download a SDK to the object library?
Mike
|
|
|
|
|
What version of MS Office do you have? This code was built using MS Office 2003. The file being reference is the actual Excel.exe of your installed Office product.
I reject your reality and substitute my own!
- Adam Savage, Mythbuster
- George W Bush
life is like a roll of toilet paper. The closer it gets to the end, the faster it goes.
My definition of an expert in any field is a person who knows enough about what's really going on to be scared.
- PJ Plauger
|
|
|
|
|
Slight progress, I have Office Xp aka Office 2002 (10.6713.6735) SP3 for Excel. SO.. I found the Excel 10.0 Object Library under COM components. And when I try to "new" the excel object, i.e. a Excel.Application, it only has Excel.ApplicationClass. Not exactly what I need, so I am wondering if I have to upgrade to the later version of Office (2003)?
Mike
|
|
|
|
|
You want to look in the object browser. The application is actually an inerface for the Excel object. Unfortunately I don't have a system with OfficeXP on it. With was little, and I mean little, I read on this subject it should work the same. I have users that OfficeXP installed and are able to use my application that I wrote referencing Office 2003.
I reject your reality and substitute my own!
- Adam Savage, Mythbuster
-George W Bush
life is like a roll of toilet paper. The closer it gets to the end, the faster it goes.
My definition of an expert in any field is a person who knows enough about what's really going on to be scared.
- PJ Plauger
|
|
|
|
|
To use the latest version of all this stuff, you need to have .Net 2005 and Office 2003. Anything less can cause issues.
|
|
|
|
|
In Pocket PC. How i can catch event right mouse(tap and hold in screen) on a control
Nothing
|
|
|
|
|
If you want to use a context menu then you should use the ContextMenu control. If you want to override this and provide your own functionality then you have to write it manually by using the MouseDown and MouseUp events (possibly with a Timer - it depends on what you want to do, e.g. perform the action while holding, or on the MouseUp)
ColinMackay.net
Scottish Developers are looking for speakers for user group sessions over the next few months. Do you want to know more?
|
|
|
|
|
I have a program right now that can read from a bitmap and then paint each pixel to a screen (I do this instead of choosing Graphics.DrawImage for transparency reasons). However, I wanted to take any character (like 'a' or ';'), and write it to a Bitmap. Is there a way to do this?
Mike - I love to program!
|
|
|
|
|
Use the DrawString of the Graphics class to draw text. Use the FromImage method to get a Graphics object for the bitmap.
---
b { font-weight: normal; }
|
|
|
|
|
So I create a graphics object, then call DrawString, then I call the FromImage method of the Bitmap class and pass in the graphics object?
Mike - I love to program!
|
|
|
|
|
No, the other way around. You use the FromImage method of the Graphics class to create the Graphics object for the bitmap, then you use the Graphics object to draw on the bitmap.
---
b { font-weight: normal; }
|
|
|
|
|
I posted a message yesterday about my program that upload/downloads files from a MySql database. Everything is working good but I probably need to encrypt the connection string. Can anyone point out some good articles about doing this in C# 2.0 (windows forms app)?
Thanks for any responses,
Sean
|
|
|
|
|
|
Thanks. I'll have a look at that. Also I just ran into a problem that I should have seen coming. For bigger files I need to send the data to the database in packets. But I have no idea how Any articles you know of that will solve my problem?
|
|
|
|
|
Hi all
how can i write a code in C# and Managed directX that can makes me import *.X files and move them like the same way directX viewer do, i am already now can import the *.x files , but the difficult thing for me is move them like that way directX viewr did
thx all
|
|
|
|
|
That is actually nohting simple. You're going to have to transform the device based on input from the user, which is far too large a subject for this post. I suggest you ask this question over at gamedev.net's .NET game programming forums.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Moral Muscle
The apostle Paul, modernly speaking: Epistles of Paul
Judah Himango
|
|
|
|
|
How to print the text from a richtextbox, but with the fonts it's written in it. For example
in a RTB i have a part wich is BOLD and the rest is REGULAR. How to print it as it is, and not all the text in BOLD or REGULAR ???
-- modified at 13:06 Sunday 12th March, 2006
|
|
|
|
|
|
No use of that, i want to print it anywhere on the paper, and not only that...
This example alows only to print the richtextbox text on a paper and nothing more... if you understand what i mean...
|
|
|
|
|
That article is an example so that you can modify it to your needs.
- To print anywhere on the page just change
rectToPrint to the rectangle you need to print onto. - If again, I understand you correctly you want to be able to print onto Forms as well as the printer? To do this then just redefine the Print method to accept a Graphics object instead of PrintPageEventArgs, then draw using this graphics and not the printer graphics, you can then pass a form's graphics canvas and print the contents of the richtextbox onto that form.
Ed
|
|
|
|