I have to synchronize a .csv file with a google sheet. The csv file is stored into a NAS area with a specific path.
The final output is to have a google sheet file which is a copy of the csv file periodically updated. The purpose is to automate the process of updating a dashboard that has the google sheet as the database but the original source file is periodically issued in this NAS area.
Can you help me?
I want to create an editable link for an excel file stored in my Personal Ondrive account. According to the documentation Microsoft-Graph-Onedrive-docs, I should be able to use createLink API with payload as {"type": "edit", "view: "anonymous"}. But even after doing that the link opens a read-only excel file in excel online.
How do I open an editable excel file in excel online
I am using Personal Onedrive and calling the APIs via Microsoft graph explorer
If you have a .doc or .xls document you can not edit that. You'll need one of the newer Word, Excel formats like: .docx or .xlsx.
I have an XML spreadsheet generated using VB.net
I want to open it into Google Sheets, but Google is unable to perform this, and throws the error "Unable to convert".
Is there any way to open an XML spreadsheet using Google Sheets?
Here's what you can try. As suggested in this google forum try to convert your XML file to Excel sheet first. One of way to do this is use an online converter - XML to Excel Converter. After that, you can now try to open the Excel file using Google sheets.
For anyone coming here later, I just successfully converted a 96MB XML file using convertcsv.com. The other sites I tried did not allow such a large file, understandably.
I found a sample project named DHlibxls could read file from Excel.
But... the problem is, I wanna write data to Excel file.
My idea is store an excel file template in the app, and write data to the excel file by actions user did in the app and thus create a new excel file for emailing..
PS: Don't urge me to convert to CSV or other format, the client's tough and he insists on the excel format.
I have a large amount of data to insert into an worksheet of an existing Excel workbook. The Excel workbook will have other worksheets containing calculations and a pivot tables. The data may have as many as 60,000 rows and more than 30 columns. This solution must work for both Excel 2003 and Excel 2007.
Using the Excel OLE object is way too slow so we are attempting to load the data from a CSV file. We have come up with a method to load the data by placing the data onto the clipboard and then pasting it into the worksheet. I feel this is a quite a kludge. Is there another way to programmatically load a CSV file into a worksheet? Or perhaps a different solution altogether?
Update: We got slammed with another task before we could fully investigate the answers. We should be able to get back to this in a couple of weeks. I'll be sure to update again when we get back to this task.
Thanks for all of the answers to date!
XLSReadWrite is a component that can read and write excel files from Delphi. It's fast and it has support for Excel 2003 and 2007. You can create new excel files as well as open existing ones and add/modify them.
Also you do not need to have Excel installed to be able to use it.
See http://www.axolot.com/components/xlsrwii20.htm
Any chance you can drop the requirement for this to work with Office 2003? I would have recommended the Open XML Format SDK. It lets you bind managed code assemblies to spreadsheet documents that can handle events such as Open or Close, and read and write to cells in the document, among other things. Alternatively, you can use it to manipulate XSLX documents from an application. Quite slick, actually.
Since this won't work for you, how about writing a macro that pulls in the CSV file when the spreadsheet is loaded?
you can load the csv into listview or usin OLEDB provider to load it on DBGrid, then export it into xls file format using TMxExport component from Max Components:
Max Components
Have you tried linking the csv file directly into the worksheet.
Go to Data -> Import External Data -> Import Data
change the file type to 'Text Files'
You can then refresh the worksheet when the csv is update.
NOTE: I have not done this with the volume of data you have indicated, so YMMV
Actually there is a way that is quite fast, pretty old tech (nowdays) but is probably the fastest.
It's ADO or for earlier versions DAO (note not ADO.NET)
You can read a CSV file using ADO and the JET Engine to get the data into a ADO recordset, then an Excel Range Object has a CopyFromRecordSet method that will copy (very fast) from the ADO (or DAO) recordset.
http://msdn.microsoft.com/en-us/library/aa165427(office.10).aspx
You can try to use Tab Separated Values instead of CSV - than you just paste this into Excel :)