Export Table Data to JSON via Azure Storage SDK
Hi,
I'm looking to export the contents of a table in JSON format and then save that JSON to one or more files.
I see that we can have the table return JSON using: tableClient.DefaultRequestOptions.PayloadFormat = TablePayloadFormat.Json;
I also see how to deserialize the JSON into an array of objects using something like this to get an array of CustomerEntity:
IQueryable<CustomerEntity> query = from customer in table.CreateQuery<CustomerEntity>()
where string.Compare(customer.PartitionKey, "I") >= 0 &&
string.Compare(customer.PartitionKey, "X") <= 0 &&
customer.Rating >= 2
select customer;
CustomerEntity[] customers = query.ToArray();
But what if I don't want the results as CustomerEntity objects, I just want the raw JSON?
The
CloudTable.CreateQuery method requires a type that inherits from ITableEntity...
I guess I could switch from using the Azure Storage SDK client to an HTTP client and query via OData, but I'd prefer a solution within the Azure Storage SDK...
Thanks,
Aron
Thanks Will,
Here is a more complete code snippet. As you can see, I have the payload set to JSON.
const string customersTableName = "Customers";
string connectionString = string.Format("DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}", accountName, accountKey);
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Values supported can be AtomPub, Json, JsonFullMetadata or JsonNoMetadata with Json being the default value
tableClient.DefaultRequestOptions.PayloadFormat = TablePayloadFormat.Json;
// Create the Customers table
CloudTable table = tableClient.GetTableReference(customersTableName);
table.CreateIfNotExists();
// Insert a couple of customers into the Customers table
foreach (CustomerEntity customer in CustomerEntity.GetCustomersToInsert())
table.Execute(TableOperation.Insert(customer, echoContent: false));
// The response have a payload format of JSON no metadata and the
// client library will map the properties returned back to the CustomerEntity object
IQueryable<CustomerEntity> query = from customer in table.CreateQuery<CustomerEntity>()
where string.Compare(customer.PartitionKey, "I") >= 0 &&
string.Compare(customer.PartitionKey, "X") <= 0 &&
customer.Rating >= 2
select customer;
CustomerEntity[] customers = query.ToArray();
However, the way the query is set up it automatically casts the results as CustomerEntity. That's the challenge - How to get the JSON payload before it gets cast to CustomerEntity...
Thanks,
Aron
Similar Messages
-
How can we export table data to a CSV file??
Hi,
I have the following requirement. Initially business agreed upon, exporting the table data to Excel file. But now, they would like to export the table data to a CSV file, which is not being supported by af:exportCollectionActionListener component.
Because, when i opened the exported CSV file, i can see the exported data sorrounded with HTML tags. Hence the issue.
Does someone has any solution for this ... Like, how can we export the table data to csv format. And it should work similar to exporting the data to excel sheet.
For youre reference here is the code which i have used to export the table data..
><f:facet name="menus">
><af:menu text="Menu" id="m1">
><af:commandMenuItem text="Print" id="cmi1">
><af:exportCollectionActionListener exportedId="t1"
>title="CommunicationDistributionList"
>filename="CommunicationDistributionList"
>type="excelHTML"/> ---- I tried with removing value for this attribute. With no value, it did not worked at all.
></af:commandMenuItem>
></af:menu>
></f:facet>
Thanks & Regards,
Kiran KonjetiHi Alex,
I have already visited that POST and it works only in 10g. Not in 11g.
I got the solution for this. The solution is :
Use the following code in jsff
==================
<af:commandButton text="Export Data" id="ctb1">><af:fileDownloadActionListener contentType="text/csv; charset=utf-8"
>filename="test.csv"
>method="#{pageFlowScope.pageFlowScopeDemoAppMB.test}"/>
></af:commandButton>
OR
<af:commandButton text="Export Data" id="ctb1">><af:fileDownloadActionListener contentType="application/vnd.ms-excel; charset=utf-8"
>filename="test.csv"
>method="#{pageFlowScope.pageFlowScopeDemoAppMB.test}"/>
></af:commandButton>
And place this code in ManagedBean
======================
> public void test(FacesContext facesContext, OutputStream outputStream) throws IOException {
> DCBindingContainer dcBindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
>DCIteratorBinding itrBinding = (DCIteratorBinding)dcBindings.get("fetchDataIterator");
>tableRows = itrBinding.getAllRowsInRange();
preparaing column headers
>PrintWriter out = new PrintWriter(outputStream);
>out.print(" ID");
>out.print(",");
>out.print("Name");
>out.print(",");
>out.print("Designation");
>out.print(",");
>out.print("Salary");
>out.println();
preparing column data
> for(Row row : tableRows){
>DCDataRow dataRow = (DCDataRow)row;
> DataLoaderDTO dto = (DataLoaderDTO)dataRow.getDataProvider();
>out.print(dto.getId());
>out.print(",");
>out.print(dto.getName());
>out.print(",");
>out.print(dto.getDesgntn());
>out.print(",");
>out.print(dto.getSalary());
>out.println();
>}
>out.flush();
>out.close();
> }
And do the following settings(*OPTIONAL*) for your browser - Only in case, if the file is being blocked by IE
==================================================================
http://ais-ss.usc.edu/helpdoc/main/browser/bris004b.html
This resolves implementation of exporting table data to CSV file in 11g.
Thanks & Regards,
Kiran Konjeti -
Export table data in a flat file without using FL
Hi,
I am looking for options where I can export table data into a flat file without using FL(File Layout) i.e., by using App Engine only.
Please share your experience if you did anything as this
ThanksA simple way to export any record (table/view) to an csv fiel, is to create a rowset and loop through all record fields, like below example code
Local Rowset &RS;
Local Record &Rec;
Local File &MYFILE;
Local string &FileName, &strRecName, &Line, &Seperator, &Value;
Local number &numRow, &numField;
&FileName = "c:\temp\test.csv";
&strRecName = "PSOPRDEFN";
&Seperator = ";";
&RS = CreateRowset(@("Record." | &strRecName));
&RS.Fill();
&MYFILE = GetFile(&FileName, "W", %FilePath_Absolute);
If &MYFILE.IsOpen Then
For &numRow = 1 To &RS.ActiveRowCount
&Rec = &RS(&numRow).GetRecord(@("RECORD." | &strRecName));
For &numField = 1 To &Rec.FieldCount
&Value = String(&Rec.GetField(&numField).Value);
If &numField = 1 Then
&Line = &Value;
Else
&Line = &Line | &Seperator | &Value;
End-If;
End-For;
&MYFILE.WriteLine(&Line);
End-For;
End-If;
&MYFILE.Close(); You can of course create an application class for generic calling this piece of code.
Hope it helps.
Note:
Do not come complaining to me on performance issues ;) -
Exporting table data to a CSV file
hello everyone,
i need help on exporting table data to a CSV file.
I have a div element containing the table which displays some data.
there is a "Export" button just above the table, which if clicked, will export the current data in the table to a .csv file.
can this be done in jsp? or i need to use servlet?
also how can i submit the table data only? (as my webpage contiain other data also)
can anyone provide with some sort of sample code?
thanks in advance!!oops!!
i just forgot..
when the user will click on the export button, i want to greet him with a "Save As"
popup, so that he can specify the filename and location to save the file.
thanks!! -
How to Export Table Data to a excel sheet using OPENROWSET
Hi Team,
I would like to Export table data to a excel sheet by using "OPENROWSET" command in SQL Server but I am getting the
below error message
Column name or number of supplied values does not match table definition.
Please help me on how to export the table data to an excel sheet by using "OPENROWSET" in SQL ServerI know this is old so I assume you've fixed this. However, for anyone else looking at this forum, I'd recommend using a union or a table join.
Select a.1, a.2, a.3 from a <where clause>
union
Select b.1, b.2, b.3 from b <where clause>
or
use a type of join.
If both table selects return the same number of columns but different data just reference them as a variable like fred, and Ted
Select fred.1, fred.2, fred.3 from (Select a.1, a.2, a.3 from a) fred
union
Select Ted.1, Ted.2, Ted.3 from (Select b.1, b.2, b.3 from b) Ted
or again some type of join of these two sets
Select * from
(Select a.1, a.2, a.3 from a) a
INNER JOIN (Select b.1, b.2, b.3 from b) b ON b.1 = a.1
This would give you 6 columns of data a1-3, and b1-3
We don't know from your description what format your spreadsheet is in. These just give you the idea. Think of the sub-selects as a Table. It's just named "fred". Once your select holds all the data you need, then export the data to the spreadsheet. Use
the horsepower of the database before trying to do a multple update of the same spreadsheet.
Does this give you enough to fix what you were trying to do? -
How to export table data to excel in albpm
Hi,
we have an requirement to export table data to excel .
we have to create an jsp in that jsp we have to have text fileds,we have to enter data to field after that we have to click on save once u click on save that data has to enter in below table and we should provide link to export that table data to excel.
this is our totatl requirement.can u please suggest me how to do,i dont have any idea..
Regards,
Sharmila
Edited by: user12171025 on Nov 5, 2009 8:44 PMHi Daniel
Please have a look at below docs :-
/people/subramanian.venkateswaran2/blog/2006/08/16/exporting-table-data-to-ms-excel-sheetenhanced-web-dynpro-binary-cache
http://wiki.sdn.sap.com/wiki/display/WDJava/ExporttoExcel(WithoutthirdpartyAPIs)
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d01854fd-1579-2c10-63ad-dd62edca2381?quicklink=index&overridelayout=true
Regards
Arun Jaiswal -
Exporting table data to MS-Excel Sheet(enhanced Web Dynpro Binary Cache)
Hi experts,
I am trying to implement the functionality of downloading the contents of a webdynpro screen to excel sheet. In order to implement the functionality of excel download i used the following blog.
[/people/subramanian.venkateswaran2/blog/2006/08/16/exporting-table-data-to-ms-excel-sheetenhanced-web-dynpro-binary-cache ]
In this blog they have used javaexcel api to implement the excel functionality. I face some problems
while implementing it.
i) The use of "Label label = new Label(0, 2, "A label record");
sheet.addCell(label); " is not supported. It says that a constructor for label with
(int, int, str) parameter is not available.
ii) Then i implemented it with "Label label = new Label("A label record"); " Then i deployed it. I got a runtime exception saying that " java.lang.ClassNotFoundException: jxl.format.CellFormat ".
This cellFormat is an interface available in the jar. I am using jexcelapi_2_6_9_1.4 version. Do i have to
download some other versions.
Please help. Thanks in advance.
Regards
RamananHi,
Please check the following steps while creating External Library DC:
1) creating an Extneral library DC
2) import the JARs to the libraries folder of the External Library DC project
3) Right-click on each of the JARs imported to the project and add them to the public part.
This DC is now ready to be used as a build-time reference that will allow CBS to build the "main" Web Dynpro application that will use the external libraries. Next, we have to create a new Web Dynpro DC to hold the class files here are the steps:
1) Create a new Web Dynpro DC
2) Create a new public part, selecting the "Can be packaged into other build results" option
3) Rename the JARs as Zip files and extrct the full content (folders and class files) to your root folder
4) Import the folders and files to the src/packages folder
5) Expand the public part node that was created and select the "Entities" node, right-click it and choose Edit
6) In the Entity Type list select the "Folder" option then in the selected entities tree pick each of the folders that you imported in step 5 (above)
7) Now do a DC build and a DC deploy of the project
Then check-in, activate, and release any activities you have associated with creating these two projects. In the DC perspective, refresh the Active DCs and Inactive DCs to ensure that both new DCs appear in the Active list. Now we have to setup the references to these DCs in our main Web Dynpro application. To do this, follow these steps:
1) Open the Web Dynpro perspective and right click the Used DCs node then choose "Add Used DC.."
2) Pick the public part of the External Library DC that we created (first) and set it to have a Build Time dependency
3) Again, right click the Used DCs node and choose "Add Used DC.." then choose the public part of the Web Dynpro DC that we created and give it a Run Time dependecy (weak) and click finish.
4) Now, due to what I think is a bug. You must right click on the Web Dynpro "used DC" that you just added in the previous step, and set the run time dependency again (it seems to revert to the default values for some reason)
5) Now do a DC build and a DC deploy on the "main" web dynpro application.
6) Check-in, activate, and release any activities associated with adding these references and then others on your team may use the classes in the external libraries within the Web Dynpro project.
Regards.
Rajat -
Hello, i use af:exportCollectionActionListener component to export table data to Excel.
there are 100 000 rows in my table. But only 65 535(may be is consilience that ushort = 0 to 65535) rows was exported.
what are problems? Anybody know?
Edited by: Beliansky Alexander on Sep 5, 2012 7:02 AMIf i am not wrong thats a limit of excel. Not sure but.Google
taken from "http://msdn.microsoft.com/en-us/library/office/ff700514.aspx"
"Starting in Excel 2007, the "Big Grid" increases the maximum number of rows per worksheet from 65,536 to over 1 million, and the number of columns from 256 (IV) to 16,384 (XFD). "
Edited by: in the line of fire on Sep 5, 2012 6:06 PM -
Exporting table data to Excel sheet:
Hi All
My requirement is need to export table data to Excel sheet: for this
I was done all, but I'm getting 500 Exception please contact u r system admin msg at run time, also Jxl/Workbook class not found msg but I downloaded Jxl.jar file and its showing in navigator>Lib>jxl.jar. There is no error signals in coding part.
Thanks
PolakaHi,
Copy your jxl.jar and open it with winzip. See if there is Workbook.class file inside it in the folder jxl.
Try to download jxl.jar from this link
http://www.java2s.com/Code/Jar/JKL/Downloadjxljar.htm
and add.
Best Wishes
Idhaya R -
Hi Gurus,
I am wondering if anyone can offer some advice in regards to export table data from a source and import it to another system.
We have a development environment (say, Banner_dev) and a production one (say, Banner_Prod). We routinely perform database refresh from Banner_Prod to Banner_dev, using Oracle Rman cloning. However, the developers are not happy with this approach saying that other things (such as packages, functions, procedures) get overwritten.
We (DBAs) have been asked to see if we can use export/import approach so that only data within a schema will be exported and imported, leaving other objects untouched in Banner_Dev when we refresh the database from Banner_Prod to Banner_Dev.
Is this doable with Oracle Data Pump? If it is, how can we accomplish this?
Thanks!You might consider a layered, scripted approach that takes into account the differences between the production and development environments. You might want to take into account things like differences between table DDL, data upgrading, coordinating code and so forth. The ideal is to be able to say "hey everybody, we're going to push this button tonight, be sure your work is saved into this system that will refresh everything."
Of course, I'm used to doing this with exp/imp because of various app and dba requirements (like, I really don't want to use the same schema name between dev and prod) and the scripts have been refined over time, but there isn't any reason you couldn't have a general post-clone procedure. Describe it in terms that developers see as beneficial to them. -
How to export table data with coloring of cell according to value.
Hi all,
I am using jdeveloper 11.1.1.6
i want to export table data with lot of formatting. like with coloring of cell according to value and so many.How to do that?Hi,
like with coloring of cell according to value and so many.How to do that?
Answer is, you can't
Frank -
I am using Azure SDK 2.2 and Azure Storage SDK 4.2.1 and storage config. 2.0 in my cloud solution. I am trying to initialize the storage as follows.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionKey);
// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
// Create the table if it doesn't exist.
table = tableClient.GetTableReference(tableName);
table.CreateIfNotExists();
Table.CreateIfNotExists() throws an exception in my dev emulator. I have been seeing this issue for quite sometime. It looks like MSFT has not fixed this issue at all. The same code works fine when I connect to the real Azure storage in the cloud. It just
does not work under emulator. How can I debug anything. If I use Storage SDK 2.1, it works fine in dev emulator. After 3.0, nothing seems to work. Am I only one or anybody else have the same issue. Is there any workaround for this version or should I stick
to the old version. Any help is appreciated.
here is the detail exception.
ex {"The remote server returned an error: (400) Bad Request."}
System.Exception {Microsoft.WindowsAzure.Storage.StorageException}
+ [Microsoft.WindowsAzure.Storage.StorageException]
{"The remote server returned an error: (400) Bad Request."}
Microsoft.WindowsAzure.Storage.StorageException
_className
null string
+ _data
{System.Collections.ListDictionaryInternal}
System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
_dynamicMethods
null object
_exceptionMethod
null System.Reflection.MethodBase
_exceptionMethodString
null string
_helpURL
null string
_HResult
-2146233088 int
+ _innerException
{"The remote server returned an error: (400) Bad Request."}
System.Exception {System.Net.WebException}
+ _ipForWatsonBuckets
8791483017288 System.UIntPtr
_message
"The remote server returned an error: (400) Bad Request."
string
_remoteStackIndex
0 int
_remoteStackTraceString
null string
+ _safeSerializationManager
{System.Runtime.Serialization.SafeSerializationManager}
System.Runtime.Serialization.SafeSerializationManager
_source
null string
+ _stackTrace
{sbyte[192]} object {sbyte[]}
_stackTraceString
null string
_watsonBuckets
null object
_xcode
-532462766 int
+ _xptrs
0 System.IntPtr
+ Data
{System.Collections.ListDictionaryInternal}
System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
HelpLink
null string
HResult
-2146233088 int
+ InnerException
{"The remote server returned an error: (400) Bad Request."}
System.Exception {System.Net.WebException}
+ IPForWatsonBuckets
8791483017288 System.UIntPtr
IsTransient
false bool
Message
"The remote server returned an error: (400) Bad Request."
string
RemoteStackTrace
null string
Source
"Microsoft.WindowsAzure.Storage" string
StackTrace
" at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext)\r\n at Microsoft.WindowsAzure.Storage.Table.TableOperation.Execute(CloudTableClient client,
CloudTable table, TableRequestOptions requestOptions, OperationContext operationContext)\r\n at Microsoft.WindowsAzure.Storage.Table.CloudTable.Exists(Boolean primaryOnly, TableRequestOptions requestOptions, OperationContext operationContext)\r\n
at Microsoft.WindowsAzure.Storage.Table.CloudTable.CreateIfNotExists(TableRequestOptions requestOptions, OperationContext operationContext)\r\n at PSI.Applications.RemoteManagement.TraceLogManagement.AzureTableStore.InitializeStorageTable(String tableName,
String connectionKey) in c:\\AzureTraceCloudService\\AzureTableStoreLib\\AzureTableStore.cs:line 27"
string
+ TargetSite
{T ExecuteSync[T](Microsoft.WindowsAzure.Storage.Core.Executor.RESTCommand`1[T], Microsoft.WindowsAzure.Storage.RetryPolicies.IRetryPolicy, Microsoft.WindowsAzure.Storage.OperationContext)}
System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}
WatsonBuckets
null object
+ Static members
Thanks,
RaviHi Ravi,
This issue maybe caused by storage client library is still not compatible with storage emulator and that's why your code is failing. I would recommend downgrading your storage client library to the previous version and your code should work just fine,
the best option I think is to upgrade the SDK to the latest version, refer to
http://azure.microsoft.com/blog/2014/08/04/announcing-release-of-visual-studio-2013-update-3-and-azure-sdk-2-4/ for more details.
Best Regards,
Jambor
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Exporting table data to a Comma Separated file / .dat file?
Hi All,
I want to export the table data to a .CSV or .DAT file. This data is an input to other software to read and load like "Informatica".
I tried spooling the file by providing the extension as .CSV but that did'nt work!
Could you please let me know how can I get the data of a table into a .CSV or .DAT file?
I am trying to get it via SQL Prompt.
Thanks in advance.
HimanshuTake a look to the Laurent Schneider's solution.
Nicolas. -
Error while Exporting large data from Reportviewer on azure hosted website.
Hi,
I have website hosted on azure. I used SSRS reportviewer control to showcase my reports. while doing so i faced an issue.
Whenever i export large amount of data as Excel/PDF/word/tiff it abruptly throw following error:
Error: Microsoft.Reporting.WebForms.ReportServerException: The remote server returned an error: (401) Unauthorized. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at Microsoft.Reporting.WebForms.SoapReportExecutionService.ServerUrlRequest(AbortState abortState, String url, Stream outputStream, String& mimeType, String& fileNameExtension)
--- End of inner exception stack trace ---
at Microsoft.Reporting.WebForms.SoapReportExecutionService.ServerUrlRequest(AbortState abortState, String url, Stream outputStream, String& mimeType, String& fileNameExtension)
at Microsoft.Reporting.WebForms.SoapReportExecutionService.Render(AbortState abortState, String reportPath, String executionId, String historyId, String format, XmlNodeList deviceInfo, NameValueCollection urlAccessParameters, Stream reportStream, String& mimeType, String& fileNameExtension)
at Microsoft.Reporting.WebForms.ServerReport.InternalRender(Boolean isAbortable, String format, String deviceInfo, NameValueCollection urlAccessParameters, Stream reportStream, String& mimeType, String& fileNameExtension)
at Microsoft.Reporting.WebForms.ServerReport.Render(String format, String deviceInfo, NameValueCollection urlAccessParameters, String& mimeType, String& fileNameExtension)
at Microsoft.Reporting.WebForms.ServerModeSession.RenderReport(String format, Boolean allowInternalRenderers, String deviceInfo, NameValueCollection additionalParams, Boolean cacheSecondaryStreamsForHtml, String& mimeType, String& fileExtension)
at Microsoft.Reporting.WebForms.ExportOperation.PerformOperation(NameValueCollection urlQuery, HttpResponse response)
at Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
It works locally (developer machine) or having less data. But it didn't work with large data when publish on azure.
Any help will be appreciated.
Thanks.Sorry, let me clarify my questions as they were ambiguous:
For a given set if input, does the request always take the same amount of time to fail? How long does it take?
When it works (e.g. on local machine using same input), how big is the output file that gets downloaded?
Also, if you can share your site name (directly or
indirectly), and the UTC time where you made an attempt, we may be able to get more info on our side. -
Help needed in Exporting tables data through SQL query
Hi All,
I need to write a shell script(ksh) to take some of the tables data backup.
The tables list is not static, and those are selecting through dynamic sql
query.
Can any body tell help me how to write the export command to export tables
which are selected dynamically through SQL query.
I tried like this
exp ------ tables = query \" select empno from emp where ename\= \'SSS\' \"
but its throws the following error
EXP-00035: QUERY parameter valid only for table mode exports
Thanks in advance,Hi,
You can dynamically generate parameter file for export utility using shell script. This export parameter file can contain any table list you want every time. Then simply run the command
$ exp parfile=myfile.txt
Maybe you are looking for
-
The underlining has become a real problem. Many words are both links within the page I'm on and also wikipedia links. When I clicki the wiki link takes predence.
-
An uneventful year... (aka no events for photos taken in 2006)
Have just installed iPhoto 08 and it has upgraded my library and created events for me. However, no photos from between March 21 2005 and February 1 2007 show up in the Events or Photos views at all! I can see these photos in their albums but there i
-
Ive got an imac from 2008 and MBPr from 2013. the imac does indeed receive regular calls but the newer mac, the MBPr from 2013 does not. what is going on apple? MacBook Pro (Retina, 15-inch, Late 2013), iOS 8.1
-
Iphoto crashes when importing files...
When I try to import images into iPhoto from Image Capture, iPhoto quits unexpectedly. Unfortunately, this is also happening in Preview and Photoshop CS2. Here is the report: "Process: iPhoto [955] Path: /Applications/iPhoto.app/Contents/MacOS/iPhoto
-
How can I put 2 different "New Tab" buttoms in Firefox 4?
In addition to the "+" that can open a new tab, I want the old New Tab option that I had in Firefox 3.6.15. I want this: http://img849.imageshack.us/img849/8373/94650563.png and also this: http://img4.imageshack.us/img4/7745/78073608.png Both of them