データセットをxlsxにエクスポートするために、次のコードを使用していました。 すべてがうまく動作します.net 4.0になっていますが、残念ながら3.5のフレームワークが必要なサーバーがあり、何もできません。だからフレームワークを4.0から3.5に変更し、コードを実行するとエラーが発生するMicrosoft.Office.Interop.Excelを使用してxlsxにデータセットをエクスポートする
古い形式または無効なタイプライブラリ。 (HRESULTからの例外: 0x80028018(TYPE_E_INVDATAREAD))ベローズラインが
Excel.Workbookブック= excel.Workbooks.Addを実行する際にエラーが発生
()。
が、これは私のコード
static void Main(string[] args)
{
String filepath = "C:/test.csv";
DataSet ds = Convert(filepath.ToString(), "tblCustomers", "\t");
Excel.Application excel = new Excel.Application();
Excel.Workbook workBook = excel.Workbooks.Add();
Excel.Worksheet sheet = (Excel.Worksheet)workBook.ActiveSheet;
int i = 0;
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
{
sheet.Cells[i + 1, j + 1] = ds.Tables[0].Columns[j].ToString();
}
i = 1;
foreach (DataRow row in ds.Tables[0].Rows)
{
for (int j = 0; j < row.ItemArray.Length; j++)
{
sheet.Cells[i + 1, j + 1] = row[j].ToString().Trim();
//cleangth = row[j].ToString().Trim().Length *10;
}
i++;
}
workBook.SaveAs(@System.IO.Directory.GetCurrentDirectory() + "\\test.xlsx");
workBook.Close();
}
任意の提案はありますか?
oufは、よく、それはそこから通過し、それは sheet.Cells [I + 1、J + 1] =のDSで破壊した後に.Tables [0] .Columns [j] .ToString(); HRESULTからの例外:0x800A03ECを示します。 – themis
私はsheet.Cells [i + 1、j + 1] = "ddd"を設定しても、それはまだ壊れます。また、シート変数は、このようにキャストする必要がありました。 Excel.Worksheet sheet =(Excel.Worksheet)workBook.ActiveSheet; – themis
多分これはそれと関係があります:http://stackoverflow.com/a/493253/1108263? –