<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<head>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
	<TITLE>Spreadsheet Project</TITLE>
	<META NAME="GENERATOR" CONTENT="StarOffice 9  (Win32)">
	<META NAME="AUTHOR" CONTENT="Niklas Nebel">
	<META NAME="CREATED" CONTENT="20061208;17510400">
	<META NAME="CHANGED" CONTENT="20090330;16354400">
	<STYLE TYPE="text/css">
	<!--
		@page { size: 21.01cm 29.69cm }
	-->
	</STYLE>
</head>
<body LANG="en-US" DIR="LTR">
<H1>Spreadsheet Project</H1>
<P><strong>Project Lead:</strong> <A HREF="mailto:dev@openoffice.apache.org">Developer mailing list</A>.</P>
<P>This is the home page for the Apache OpenOffice spreadsheet
application, named Calc. A product description (including screenshot)
can be found <A HREF="https://www.openoffice.org/product/calc.html">here</A>.
Note that the Chart module has <A HREF="https://graphics.openoffice.org/chart/chart.html">its
own page</A>.</P>
<H2>User Information</H2>
<P>If you're looking for user information about Calc, try these
links:</P>
<UL>
	<LI><P><A HREF="http://wiki.services.openoffice.org/wiki/FAQ:Calc">FAQ:
	Calc in the Wiki</A></P>
	<LI><P><A HREF="http://user-faq.openoffice.org/new-faq/Calc/">User
	FAQ: Calc</A></P>
	<LI><P><A HREF="http://documentation.openoffice.org/faqs/spreadsheet/index.html">Calc
	FAQs</A></P>
	<LI><P><A HREF="http://documentation.openoffice.org/HOW_TO/index.html">HOW
	TO (scroll down for Calc)</A></P>
	<LI><P><A HREF="http://documentation.openoffice.org/manuals/index.html">User
	Guides (all modules)</A></P>
	<LI><P><A HREF="http://documentation.openoffice.org/tutorials/index.html">Tutorials
	(all modules)</A></P>
</UL>
<H2>Submit an Issue</H2>
<P>If you found a bug or want to suggest an enhancement, find the
information about submitting issues <A HREF="http://qa.openoffice.org/issue_handling/project_issues.html">in
the QA project</A>.</P>
<H2>Develop Extensions</H2>
<P>In addition to general <A HREF="http://wiki.services.openoffice.org/wiki/Extensions_development">extension
development</A>, Calc supports the use of <A HREF="http://wiki.services.openoffice.org/wiki/Add-In">Add-In</A>
components to extend the set of functions that can be used in cell
formulas. Add-Ins can easily be created using the <A HREF="http://wiki.services.openoffice.org/wiki/OpenOffice_Calc_Add-In_Project_Type">Add-In
Wizard</A> of the <A HREF="http://wiki.services.openoffice.org/wiki/OpenOffice_NetBeans_Integration">NetBeans
integration</A>. Besides that, some articles are available:</P>
<UL>
	<LI><P><A HREF="http://wiki.services.openoffice.org/wiki/Simple_Calc_Add-in">Simple
	Calc Add-in</A> in the Wiki</P>
	<LI><P><A HREF="http://wiki.services.openoffice.org/wiki/CompleteAddIn">CompleteAddIn</A>
	in the Wiki</P>
	<LI><P>An older article <A HREF="http://sc.openoffice.org/addin_howto.html">&ldquo;How
	to add-in&rdquo;</A></P>
</UL>
<H2>Development Documentation</H2>
<UL>
	<LI><P>The <A HREF="http://wiki.services.openoffice.org/wiki/Main_Page">OpenOffice.org
	wiki</A> has a <A HREF="http://wiki.services.openoffice.org/wiki/Category:Calc">category
	&quot;Calc&quot;</A>.</P>
	<LI><P><A HREF="http://specs.openoffice.org/calc/index.html">Specifications</A>
	for some spreadsheet features</P>
	<LI><P><A HREF="testdocs/index.html">Import/export filter test
	documents</A></P>
	<LI><P>Excel file format documentation (in progress), available as
	<A HREF="http://sc.openoffice.org/excelfileformat.odt">odt</A> or
	<A HREF="http://sc.openoffice.org/excelfileformat.pdf">pdf</A>, and
	Compound Document file format documentation, also as <A HREF="http://sc.openoffice.org/compdocfileformat.odt">odt</A>
	or <A HREF="http://sc.openoffice.org/compdocfileformat.pdf">pdf</A></P>
	<LI><P>See also the &ldquo;Documents &amp; files&rdquo; link to the
	left of this page.</P>
</UL>
<H2>Current Development</H2>
<P>To see what the Calc team at Sun is doing, look for the weekly
update entries in the <A HREF="http://blogs.sun.com/GullFOSS/">GullFOSS
blog</A>.</P>
<P>Currently, the major topics of Calc development are:</P>
<UL>
	<LI><P>Performance</P>
	<P>Current Calc activities within the <A HREF="http://performance.openoffice.org/">performance
	project</A> are listed on the <A HREF="http://wiki.services.openoffice.org/wiki/Performance">performance
	wiki page</A>.</P>
	<LI><P>Excel 2007 import filter</P>
	<P>The import filter for Excel 2007 files is continually improved.
	For details about the filter implementation, see <A HREF="http://wiki.services.openoffice.org/wiki/SpreadsheetML">its
	wiki page</A>.</P>
	<LI><P>ODF formula specification</P>
	<P>Within the OASIS OpenDocument <A HREF="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office-formula">Formula
	Subcommittee</A>, a specification for spreadsheet formulas is being
	created. Necessary changes are being implemented.</P>
	<LI><P>Integration of R into Calc</P>
	<P>A Summer of Code project has integrated the R environment with
	Calc, see <A HREF="http://wiki.services.openoffice.org/wiki/R_and_Calc">the
	page in the wiki</A>. The Summer of Code project is completed, but
	the integration will continue to be improved.</P>
	<LI><P>Usability improvements</P>
	<P>There's a separate <A HREF="http://wiki.services.openoffice.org/wiki/Calc_Usability_Activities">wiki
	page</A> about our usability activities.</P>
	<LI><P>Solver</P>
	<P>Calc has a <A HREF="http://blogs.sun.com/GullFOSS/entry/spreadsheet_solver_infrastructure">built-in
	dialog</A> to control different solver components, and a linear
	solver component included in the installation set. A non-linear
	component is available as a <A HREF="http://blogs.sun.com/GullFOSS/entry/solver_for_nonlinear_programming">preliminary
	version</A>.</P>
</UL>
<H2>To-Do List</H2>
<P>These are some areas where help would be useful. Well thought-out
patches are welcome, but please file your Joint Copyright Assignment
(JCA) first, see <A HREF="http://contributing.openoffice.org/programming.html#jca">How
to submit code to OpenOffice.org</A>.</P>
<H3>Possible extensions</H3>
<UL>
	<LI><P>Statistical data analysis tools (ANOVA etc.), see <A HREF="http://www.openoffice.org/issues/show_bug.cgi?id=4921">issue
	4921</A>.</P>
	<P>Leonard Mada has posted <A HREF="http://sc.openoffice.org/servlets/ReadMsg?list=dev&amp;msgNo=1936">some
	code</A> for ANOVA to the sc-dev mailing list.</P>
	<LI><P>Component to check spreadsheet documents for potential errors</P>
	<P>Write an extension that checks a spreadsheet document for
	potential errors in formulas, presents a list of the findings to the
	user, and allows to correct them. Note that the conversion of text
	to numbers is already handled by the <A HREF="http://extensions.openoffice.org/project/CT2N">CT2N
	extension</A>.</P>
</UL>
<H3>Other features</H3>
<UL>
	<LI><P>A Watch Window to watch certain cells</P>
	<P>A Watch Window is a separate, small window that remains &quot;on
	top&quot; and enables users to monitor a selected set of cells, see
	<A HREF="http://www.openoffice.org/issues/show_bug.cgi?id=28386">issue
	28386</A>. This could possibly also be done as an extension.</P>
	<LI><P>CSV import enhancements</P>
	<P>Most of the changes that were originally planned for the import
	of csv (text) files have already been done. Some open points are
	issues <A HREF="http://qa.openoffice.org/issues/show_bug.cgi?id=60110">60110</A>,
	<A HREF="http://qa.openoffice.org/issues/show_bug.cgi?id=37668">37668</A>,
	<A HREF="http://qa.openoffice.org/issues/show_bug.cgi?id=19369">19369</A>,
	<A HREF="http://qa.openoffice.org/issues/show_bug.cgi?id=24076">24076</A>
	and <A HREF="http://qa.openoffice.org/issues/show_bug.cgi?id=3687">3687</A>.</P>
	<LI><P>Add new spreadsheet functions and parameters according to
	ODFF</P>
	<P>The <A HREF="http://www.oasis-open.org/committees/documents.php?wg_abbrev=office">OpenDocument
	Format Formula specification</A> (ODFF aka OpenFormula) defines
	several new spreadsheet functions and new optional parameters to
	already existing functions that have to be implemented.</P>
	<LI><P>See also the <A HREF="http://wiki.services.openoffice.org/wiki/Community_Innovation_Program/proposals">list
	of suggestions</A> for the Community Innovation Program.</P>
</UL>
<H3>IssueZilla queries</H3>
<UL>
	<LI><P><A HREF="http://www.openoffice.org/issues/buglist.cgi?Submit+query=Submit+query&amp;component=Spreadsheet&amp;issue_status=NEW&amp;issue_status=STARTED&amp;issue_status=REOPENED&amp;email1=&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=exact&amp;emailreporter2=1&amp;issueidtype=include&amp;issue_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;issue_file_loc=&amp;issue_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=easy2dev&amp;keywords_type=anytokens&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Spreadsheet
	issues with keyword &ldquo;easy2dev&rdquo;</A></P>
	<P>These are issues that someone new to the project might want to
	look at. They generally don't require very deep insight into the
	inner workings of Calc.</P>
	<LI><P><A HREF="http://www.openoffice.org/issues/buglist.cgi?Submit+query=Submit+query&amp;component=Spreadsheet&amp;issue_status=NEW&amp;issue_status=STARTED&amp;issue_status=REOPENED&amp;email1=&amp;emailtype1=exact&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=exact&amp;emailreporter2=1&amp;issueidtype=include&amp;issue_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;issue_file_loc=&amp;issue_file_loc_type=substring&amp;status_whiteboard=&amp;status_whiteboard_type=substring&amp;keywords=needhelp&amp;keywords_type=anytokens&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;newqueryname=&amp;order=Reuse+same+sort+as+last+time">Spreadsheet
	issues with keyword &ldquo;needhelp&rdquo;</A></P>
	<P>These are issues where help is needed.</P>
	<LI><P><A HREF="http://qa.openoffice.org/issues/buglist.cgi?issue_type=ENHANCEMENT&amp;issue_type=FEATURE&amp;issue_type=TASK&amp;component=Spreadsheet&amp;issue_status=NEW&amp;issue_status=STARTED&amp;issue_status=REOPENED&amp;target_milestone=OOo+Later&amp;order=issues.target_milestone,%20issues.priority,%20issues.votes%20desc,%20issues.issue_id">Features
	&amp; Enhancements with target &quot;Later&quot;</A></P>
	<P>This is a long list, sorted by priority and votes. Some of these
	may currently be blocked by other issues.</P>
</UL>
</body>
</HTML>
