我試圖導出一個從查詢中填充的數據表,但是我在最後一行收到一條帶有消息「無效單元值」的異常。將空數據庫值導出爲Excell
這隻有在列包含空值時纔會發生。 如何修改我的數據表以將空值替換爲字符串或將空值寫入Excel文件中作爲空格。
這是代碼,我有:
DataSet ds = new DataSet("New_DataSet");
DataTable dt = new DataTable("New_DataTable");
ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
OracleDataAdapter adptr = new OracleDataAdapter();
try {
con.Open();
var oracmd = con.CreateCommand();
oracmd.CommandText = "select Column1,Column2 from Test";
adptr.SelectCommand = oracmd;
adptr.Fill(dt);
con.Close();
ds.Tables.Add(dt);
SaveFileDialog saveFileDialog1 = new SaveFileDialog
{
Filter = "Excell files (*.xls)|*.xls";
RestoreDirectory = true;
};
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
ExcelLibrary.DataSetHelper.CreateWorkbook(saveFileDialog1.FileName, ds);
'xls'是舊的,過時,無證的格式。生成它的唯一可靠方法是在本地安裝Excel。過去12年中使用的格式「xlsx」已有詳細記錄,可以由各種SDK和庫直接生成。你可以使用像[EPPlus]這樣的庫(https://www.nuget.org/packages/EPPlus/)用一個簡單的'sheet.LoadFromDataTable(dt);'來生成一個真正的xlsx文件, ](https://epplus.codeplex.com/wikipage?title=WebapplicationExample)。 –
'xls'也不*支持谷歌表和其他供應商沒有付費訂閱精確,因爲支持它花費他們的錢。 –
完全同意Panagiotis,但要回答這個問題,只需使用Oracle的等效MSSQL的'ISNULL()'來替換空值或任何你想要的空值。 – Crowcoder