有沒有一個程序化的解決方案,這不涉及服務器上的Office?如何以編程方式將.xls和.csv文件轉換爲.xlsx?
更新: 該解決方案將被部署在.NET店,所以現在PHP和Java的方法是上不了檯面的(雖然我留下了深刻印象庫本身)。
我們將以csv,.xls和.xlsx格式接收需要解析並將其數據推入數據庫的文檔。我們正在計劃使用OpenXML SDK來實現所有的解析優勢,並希望僅通過一種文件類型進行操作。
有沒有一個程序化的解決方案,這不涉及服務器上的Office?如何以編程方式將.xls和.csv文件轉換爲.xlsx?
更新: 該解決方案將被部署在.NET店,所以現在PHP和Java的方法是上不了檯面的(雖然我留下了深刻印象庫本身)。
我們將以csv,.xls和.xlsx格式接收需要解析並將其數據推入數據庫的文檔。我們正在計劃使用OpenXML SDK來實現所有的解析優勢,並希望僅通過一種文件類型進行操作。
對於Java,您可以使用Apache POI library來實現此目的。
HSSF是POI Project的Excel '97(-2007)文件格式的純Java實現。
XSSF是POI Project的Excel 2007 OOXML(.xlsx)文件格式的純Java實現。
我用它在.xls
和.xlsx
文件的完整組合,以閱讀,我總是輸出.xlsx
。
對於.csv
文件,使用Super CSV library導入並使用上面的Apache POI庫導出。
Super Csv的主要動機是爲Java提供最好,最快速,最適合程序員的免費CSV包。
或者,如果你想有一個PHP的解決方案,而不是Java
,你可以使用解析列使用PHPExcel(http://www.phpexcel.net)。
object columnValue = ws.Cells[i, ColIndex, i, ColIndex].Value; // get Specific cell.
您可以使用下面的方法進行的.csv,XLSX,.txt文件。
public yourReturnType compute()
{
#region .XLSX Section
if (FilePath.FullName.Contains(".xlsx") || FilePath.FullName.Contains(".xls"))
{
// Open and read the XlSX file.
using (var package = new ExcelPackage(FilePath))
{
ExcelWorkbook wb = package.Workbook; // Get the work book in the file
if (wb != null)
{
if (wb.Worksheets.Count > 0)
{
ExcelWorksheet ws = wb.Worksheets.First(); // Get the first worksheet
yourParseCode(ws);
}
} // if End.
} // using end.
}
#endregion
#region .CSV Section
if (FilePath.FullName.Contains(".csv") || FilePath.FullName.Contains(".txt"))
{
CSVParser c = new CSVParser(FilePath);
DataTable dt = c.ReadCSVFile();
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("temporary");
ws.Cells["A1"].LoadFromDataTable(dt, true);
yourParseCode (ws);
////pck.Save(); // no need to save this temporary sheet.
}
}
#endregion
return (yourReturnType);
}
對於CSV文件,我會建議的http://kbcsv.codeplex.com/組合來讀取csv文件到一個DataTable和EPPPLUS利用其.FromDataTable方法將其轉換爲XLSX文件。 我工作很好,速度非常快。 對於讀取xls文件沒有免費的實現,我知道:(
這些問題是否有幫助嗎?http://stackoverflow.com/questions/1486256/creating-excel-or-excel-compatible-spreadsheets-on -the-server-side-in-c http://stackoverflow.com/questions/1642702/generating-nicely-formatted-excel-files-in-asp-net-without-having-excel-on-server – 2010-05-14 19:37:10
最好的答案取決於打算使用或熟悉的編程語言,我也會提及它們,它也可能有助於您更好地瞭解上下文,它是客戶端應用程序嗎?Swing還是Web應用程序?JSP/Servlet還是PHP?等等 – BalusC 2010-05-15 17:50:58