Hot answers tagged excel
13
In the answer linked here, I did the following:
out = FileNameJoin @ {$TemporaryDirectory, "MathematicaOutput" <> ToString /@ Date[] <> ".rtf"}
/tmp/MathematicaOutput2012519111731.900549.rtf
Then you would say Export[out, ...].
If you want to have the date in a more readable and less detailed form, you could use this for the name:
...
12
Overall, your data is just badly formatted. For instance, later in the list your dates look similar to "3-Mar" which is interpreted as the third of March not March 2003, as you intended. For the most part, this is not your fault, but Excel arbitrarily formats data, and you have to be vigilant that it doesn't misinterpret it. Towards that end, I've rewritten ...
12
You don't need the initial InstallNET[]. That should come after Needs["NETLink"].
I made a post on this topic a while back, here: http://forums.wolfram.com/mathgroup/archive/2011/Oct/msg00386.html
Some code to illustrate the method:
Needs["NETLink`"]
ReadFromExcel[file_String, cell_String, rows_Integer, cols_Integer] :=
Module[{excel, workbook, ...
10
You can export both data and the images using one of several syntax patterns that you find in the docs on XLS format:
For example:
g = CompleteGraph[7];
Export["output1.xls",
{g, {"mySheet1" -> Normal@AdjacencyMatrix[g]}}, {{"Images", "Sheets"}}]
gives
EDIT: Exporting multiple images:
It seems you need at least one sheet (which could be ...
9
If your Excel file test.xls is very simple:
Then the code is a one-liner (if I understand correctly what is needed):
Set@@@Transpose[{ToExpression[First[#]], Transpose[Rest[#]]}&@Import["test.xls"][[1]]]
To check:
{Paris, Moscow}
{{1., 2., 3., 4., 5., 6., 7., 8.}, {12., 23., 34., 45., 56., 67., 78., 89.}}
The rest is more complex cases. ...
8
If we define your parameters as:
tstep = .5;
tstop = 10;
nss = StateSpaceModel[{
{{0, 1, 0, 0}, {5.3572, 7.602, 56.6571,18.102},
{0, 0, 0, 1}, {-5.3572, -7.602, -46.8571, -18.102}},
{{0}, {0.5}, {0}, \{-0.5}}},
SamplingPeriod -> None, SystemsModelLabels -> None];
Then store the response as a list:
response = ...
8
You can easily implement it in two steps.
You create an Excel macro in your personal.xlsb that you can
use to execute some keybord shortcut to copy your selected data. I
use CTRL+SHIFT+C.
Second you can create a Mathematica function to import this
clipboard data (optional, but very usefull)
More information on how to handle your personal.xlsb here
How ...
7
Here's a variation on Jens' answer:
"file-" <> DateString[Riffle[{"Year", "Month", "Day"}, "-"]] <> ".pdf"
(*
==> "file-2012-05-19.pdf"
*)
which has the advantage of automatically padding the month and day with zeros so that the file names will sort nicely.
7
Per request, I'm posting this as an answer:
The same problem is mentioned in the following support article:
http://support.microsoft.com/kb/320369
The problem appears if the language of Excel differs from the locale setting of the operating system. One workaround is to set the system locale to match with the language of Excel (probably US English for ...
6
If you need a basic data behind the graph, the AdjacencyMatrix I think is good for tabular formats. This will work:
Export["graph_data.xls", AdjacencyMatrix[CompleteGraph[13]]]
"graph_data.xls"
If you need the image of the graph object, in addition to programmatic way (see @kguler answer) there is an interactive way I personally use often. The steps ...
5
I see several ways how you could achieve what you want. Any of them either needs extra "non-mathematica" software, efforts or knowledge. I think the best way is to learn how to interact with excel via .Net/COM as is described e.g. in the documentation, but you have mentioned that you want to avoid that. Here are the alternatives that I can think of:
Use ...
5
I've got VBA calling Mathematica functions. It's not without issues, but maybe some other smart people here can help with the hiccups.
First things first:
The .dll that Mathematica includes with its installation for .NETLink is not COM-compatible, meaning that VBA cannot find entry points into the dll functions. To get around this, .NET must be installed ...
5
Here is a way to invoke System.DateTime.FromOADate using NETLink:
Needs["NETLink`"]
InstallNET[];
LoadNETType["System.DateTime"];
fromOADate[d_] :=
DateList @ NETBlock @ System`DateTime`FromOADate[d]@ToString[]
Note, however, that FromOADate does not share Excel's backward-compatible implementation of Lotus 1-2-3's date bug. To see this, we introduce ...
5
If you know the number of header rows, you can always just Drop that number of rows as part of the code to import the data. For example, suppose your file is called "myfile.xls" and the worksheet is called "Data". Then your code would be:
data = Drop[Import["myfile.xls",{"Sheets","Data"}],1]
or using Part with Span (;;):
data = ...
5
With syntax errors fixed:
Import[" appropriate path /Desktop/stproj.xls", "xls", "Data", 1]
should import the file.
Regarding population counts you are getting, the = sign at the beginning of an input cell invokes Wolfram Alpha query which allows free-form input (hence you get no syntax error warnings). Interestingly, Wolfram Alpha interprets the query ...
5
Assuming I understand correctly your question, here's what I would do:
First, let's assign the second column to a variable a=BankShadowFed[[All,2]]. Now let's remove every , from the numbers in the list, using aa=StringReplace[a, "," -> ""].
We have a list of strings, which we can now turn into a list of expressions using aaa=Table[ToExpression[aa[[i]]], ...
4
I have found the solution. From the Documentation,
Some documents use names in a non-namespace-compliant fashion, because
the XML namespace recommendation, which extends XML, was made after
the initial XML recommendation. "IncludeNamespaces"->"Unparsed" is
provided to allow parsing of these documents. The name is always
represented as the ...
4
I Think what you want is something like
(Evaluate[{Symbol@#[[1, 1]], Symbol@#[[1, 2]]}] = Transpose@##[[2 ;;]]) &@
Import["C:\\test1.xls"][[1]]);
{Test1, test2}
(*
{{1., 2., 3., 4., "", "", "", "", "", ""}, {2., 4., 5., 7., "", "", "", "", "", ""}}
*)
Which assigns the columns to Mathematica ...
4
This function converts serial dates only since March 1st, 1990, due to the Excel bug described here: Converting Excel serial dates with NETLink
convertDate[serialdate_] :=
If[serialdate < 61, "N/A", DatePlus[{1901, 1, 0}, serialdate - 366]]
convertDate[40969.00069]
{2012, 3, 1, 0, 0, 59.616}
DateString@Round@%
Thu 1 Mar 2012 00:01:00
4
You can copy a tabulated data to clipboard and then paste it in a sheet with formatted cells without loss of formatting:
CopyToClipboard@
Cell[StringReplace[
ExportString[myTable, "TSV"],
"\r\n" -> "\n"], TextClipboardType -> "PlainText"]
Alternatively, you could save your Excel file as XML file, Import this file in Mathematica and ...
4
For example:
(* some data *)
pts = Range[10]^4;
f1 = Interpolation[pts, InterpolationOrder -> 1];
f2 = Interpolation[pts, InterpolationOrder -> 3];
t1 = Join[{{"x", "f1[]"}}, Table[{x, f1@x}, {x, 1.5, 4.5, 1}]];
t2 = Join[{{"x", "f2[]"}}, Table[{x, f2@x}, {x, 1.5, 4.5, 1}]];
data = Join @@@ Transpose@{t1, t2};
(* Transformation from Excel "A1" ...
3
Your PlotRange starts at 0 on the log axis and that's preventing MMa from evaluating it. MMa is falling back to Automatic when you are using a 0 on a log scale. Use for example 0.5
ListLogLinearPlot[{{0, 1}, {1, 2}, {2, 3}, {3, 4}}, Joined -> True,
PlotRange -> {{0.5, Log[20]}, {0, 3.7}}]
or similar.
I don't know what your data looks like but if ...
2
This is verbatim from the docs on XLSX:
Example excel file with two sheets:
Export["sheets.xlsx", {{"MySheet1" -> {Range[10]},
"MySheet2" -> {{"This is a string."}}}}, {{"Sheets"}}]
To import the cell at row 1, column 4 of MySheet1:
Import["sheets.xlsx", {"Sheets", "MySheet1", 1, 4}]
(* 4 *)
Import the second sheet:
...
2
This may seem like a solution that's too easy to be true, but I tried the following:
Export["mwe80.xls", dataforexcel80]
It worked for me - the Excel document got exported quickly. I think that the problem was in the format, as the error said.
EDIT
As to your second question, the code you're looking for involves StringJoin:
...
1
This is really, really basic stuff and you really, really should be able to figure this out yourself using the built-in documentation system.
Anyways, assuming your differential equation is OK (which it might not as Response is undefined in this snippet and everything is equal to 0) you would make a table like this:
t = Table[{x[t], phi[t], xf[t], xr[t]} ...
1
s = {{" ", a, b, c},
{1, R, S, T},
{2, U, V, W},
{3, X, Y, Z}};
Traverse the rows and extract the triplets.
Table[{s[[1, j]], s[[i, 1]], s[[i, j]]},
{i, 2, Length[s]}, {j, 2, Length[First@s]}] // Flatten[#, 1] &
(* {{a, 1, R}, {b, 1, S}, {c, 1, T}, {a, 2, U}, {b, 2, V}, {c, 2, W}, *)
(* {a, 3, X}, {b, 3, Y}, {c, 3, Z}} *)
1
This is just one of a range of problems in importing data from Excel (don't let me count the ways).... I wasn't aware of Rationalize, but here's a Rule that can be applied upon import to round numeric data:
ExcelImportRule = (x_ /; (NumericQ[x] && (Abs[x - Round[x]] < $MachineEpsilon)) :> Round[x])
Only top voted, non community-wiki answers of a minimum length are eligible
