我需要將使用C#將.xls文件轉換爲.xlsx而不使用Microsoft Office的幫助。如何使用C#將.xls文件轉換爲.xlsx並且未安裝Microsoft Office?
1
A
回答
2
通過一些編碼工作,您可以使用NPOI庫來讀取XLS數據並將其寫回爲XLSX。
另一種方式(XLSX到XLS)顯示在Convert xlsx file to xls using NPOI in c#中。這可能是看到原則的一個很好的起點。
+0
我使用過你的建議,並在此發佈重寫轉換器http://stackoverflow.com/a/41172690/119843 –
+0
@ er-v非常感謝您的反饋。 –
0
使用下面的查詢,
private static string GetConnectionString()
{
Dictionary<string, string> props = new Dictionary<string, string>();
// XLSX - Excel 2007, 2010, 2012, 2013
props["Provider"] = "Microsoft.ACE.OLEDB.12.0;";
props["Extended Properties"] = "Excel 12.0 XML";
props["Data Source"] = @"D:\data\users\liran-fr\Desktop\Excel\Received\Orbotech_FW__ARTEMIS-CONTROL-AG__223227__0408141043__95546.xls";
// XLS - Excel 2003 and Older
//props["Provider"] = "Microsoft.Jet.OLEDB.4.0";
//props["Extended Properties"] = "Excel 8.0";
//props["Data Source"] = "C:\\MyExcel.xls";
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<string, string> prop in props)
{
sb.Append(prop.Key);
sb.Append('=');
sb.Append(prop.Value);
sb.Append(';');
}
return sb.ToString();
}
private static DataSet ReadExcelFile()
{
DataSet ds = new DataSet();
string connectionString = GetConnectionString();
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
// Get all Sheets in Excel File
DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
// Loop through all Sheets to get data
foreach (DataRow dr in dtSheet.Rows)
{
string sheetName = dr["TABLE_NAME"].ToString();
//if (!sheetName.EndsWith("$"))
// continue;
// Get all rows from the Sheet
cmd.CommandText = "SELECT * FROM [" + sheetName + "]";
DataTable dt = new DataTable();
dt.TableName = sheetName;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
ds.Tables.Add(dt);
}
cmd = null;
conn.Close();
}
return ds;
}
using (ExcelPackage epackage = new ExcelPackage())
{
ExcelWorksheet excel = epackage.Workbook.Worksheets.Add("ExcelTabName");
DataSet ds = ReadExcelFile();
DataTable dtbl = ds.Tables[0];
excel.Cells["A1"].LoadFromDataTable(dtbl, true);
System.IO.FileInfo file = new System.IO.FileInfo(@"D:\data\users\liran-fr\Desktop\Excel\Received\test.xlsx");
epackage.SaveAs(file);
}
+0
您的解決方案需要安裝不受OP要求的Excel。 –
相關問題
- 1. 轉換XLSX到XLS使用Microsoft Office Compitablity包的excelcnv
- 2. 是否可以使用Microsoft Graph Excel API將xls文件轉換爲xlsx?
- 3. C#將Excel 2007(xlsx)文件轉換爲Excel 2003(xls)文件
- 4. 將xls轉換爲xlsx並刪除舊文件
- 5. 如何將csv文件轉換爲sapui5中的xls或xlsx?
- 6. 將Excel xlsx轉換爲Java中的xls
- 7. 將Microsoft Office文檔轉換爲文本
- 8. 如何使用python將xls轉換爲xlsx?
- 9. 在沒有安裝Office的情況下在c#中導入xls和xlsx文件
- 10. 如何將xls文件轉換爲xlsx文件並使用SSIS保存到文件夾中?
- 11. Excel宏將xlsx轉換爲xls
- 12. 如何以編程方式將.xls和.csv文件轉換爲.xlsx?
- 13. 如何將xls文件轉換爲xml?
- 14. 如何將XSD文件轉換爲XLS
- 15. 如何將.xlsx文件轉換爲.mpp文件在c#
- 16. 將多個Excel .xls文件轉換爲.xlsx格式
- 17. 將多個.xls文件轉換爲ssis中的.xlsx
- 18. 將XLS文件轉換爲XLSX中的錯誤
- 19. 如何使用PowerShell將多個xls文件轉換爲csv?
- 20. Python將Excel文件(xls或xlsx)轉換爲ODS或從ODS轉換爲
- 21. 如何在C#中以編程方式將xlsx文件轉換爲2003 xls文件?
- 22. xlrd庫不能使用xlsx files.any方式將xlsx轉換爲xls使用python?
- 23. 我可以使用okapi和java將doc轉換爲docx,ppt轉換爲pptx,xls轉換爲xlsx,反之亦然?
- 24. 如何使用c#將.xls文件轉換爲.xlsx,然後使用epplus編輯.xlsx文件,如使用epplus着色單元格
- 25. 使用java代碼將.xls轉換爲.xlsx格式
- 26. 將xls和xlsx轉換爲C#中的數據表#
- 27. 將.dat文件轉換爲.xls文件
- 28. C#將csv轉換爲xls(使用現有的csv文件)
- 29. 如何使用java和springmvc將xls轉換爲xml文件?
- 30. 將多個CSV轉換爲xls或xlsx並將格式應用到它們
什麼你嘗試自己嗎?請閱讀[本頁如何提問](http://stackoverflow.com/help/mcve)並編輯您的問題。 –