質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

6360閲覧

ASP.NET (VB.NET)でのExcel出力にてグラフ有りシートのコピーの不具合について

DgRp_08

総合スコア56

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2016/09/26 15:27

編集2016/09/27 01:14

ASP.NET(VB.NET)利用でWebアプリケーション制作中です。
雛形のExcelファイルをコピーして、コピーしたExcelファイルにデータを出力及びブラウザにてダウンロード、という処理があります。

ブラウザは関係あるか分かりませんが、客先の指定でIE7使用です。
使用Excelは2010ですが、雛形のExcelファイルの拡張子は「.xls」です。

このExcel雛形にはグラフが含まれており、シートは雛形となるシートが1シート存在しています。

データ出力の際にDBデータの「カテゴリ」というデータごとにシートをわけてグラフデータを出力という仕様を指示されているので、カテゴリ種類数分ループしてシートのコピーとデータの出力を行っています。
<例>
対象テーブルの「カテゴリ」のデータに「A」、「B」、「C」の3種類のデータが有る場合
Excelにてシート名「A」に「A」に紐づくデータ出力。シート名「B」に「B」に紐づくデータ出力。
Cも同様の処理。

各データは想定通りに出力できているのですが、グラフのデータ範囲に不具合が生じています。
「累計」、「日計」、「日付」のデータ対象があるとすると、何故か「日付」のみ反映されていません。
どのような原因があるでしょうか。
また同時に解消方法が分かりましたらアドバイス頂きたいです。

シートコピーはWorksheet.Copy メソッドを使用しています。

雛形の初期状況、出力後のデータ範囲の状況は見づらいかもしれませんが、添付した図にまとめましたのでご参照ください。

イメージ説明

2016.09.27追記
発生している事象について訂正があります。
横軸ラベルのデータ範囲が消えているのではなく、横軸ラベルのデータ範囲のみ雛型シートを参照したままになっていました。

なお、未だ解決できず調査中です。
業務期限が明日明後日なので皆様のお力添えを頂きたく存じます。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

シートコピーはWorksheet.Copy メソッドを使用しています。

そもそも、Microsoft が推奨もサポートもしてないことをやってませんか?

Office のサーバーサイド オートメーションについて
https://support.microsoft.com/ja-jp/kb/257757

投稿2016/09/26 16:09

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DgRp_08

2016/09/26 16:23

回答いただきありがとうございます。 全部は読めていませんが、要するにサーバサイドでExcel操作した場合に想定外の動きはありえるからシートのコピーでのデータ範囲維持は諦めるべきということでしょうか? また、この逆で、推奨もサポートもしているシートコピーの方法があるのでしょうか? 自分でもいろいろ調べてはおりますが、知識も経験も浅く時間もない為、ご存知でしたら教えていただきたいです。。
退会済みユーザー

退会済みユーザー

2016/09/27 01:55

諦めるべきかどうかは質問者さんの事情があるでしょうから自分は分かりません。紹介した記事に書いてあるリスクやライセンスの問題を、十分なサポートがなくてもクリアできるスキルがあって、開発工数がペイすると判断されるのであれば諦める必要はないかも。 でも、質問者さんは紹介した記事のことはご存じなかったのでは? そうであるとすると最初から諦めた方がいいような気もします。 紹介した記事全部を詳細に読む時間はないかもしれませんが、斜め読みぐらいはしてもらえてでしょうか。記事の中に「サーバーサイド オートメーションの代替策」というのがありますが見ましたか? ただ、Open XML というのはかなり敷居が高いのが問題ですが。 代わりにかなり簡単に扱うことができる ClosedXML というライブラリがあります。 http://closedxml.codeplex.com/ 探せば他にもそのようなライブラリは他にもいろいろあるようです。 書式設定が不要であれば、サードパーティ製のライブラリを使わなくても、ADO.NET と ACE OleDb プロバイダを利用してかなりのとことまでできます。 http://surferonwww.info/BlogEngine/post/2012/01/26/Creating-Excel-workbook-by-using-ACE-OleDb-provider.aspx
DgRp_08

2016/09/27 05:49

いろいろページ等紹介いただきありがとうございます。 オートメーションについてのページは調査の際見つけてはいましたが「解決策ではない」と流し読みしただけであまり重要に考えていませんでした。。。 また、openxmlは使い慣れていますが、現在改修業務で手段にも制限がありそれの仕様が認められていない大変やりづらい環境での開発となっておりました。 結局範囲再指定で解決しました。 問題視する観点の反省等が、SurferOnWww様のおかげで出来ました。 二度も回答頂きありがとうございました。
guest

0

自己解決

シートコピーだけで解決することにこだわりすぎていました。
データ範囲再指定で解決しました。

投稿2016/09/27 05:50

DgRp_08

総合スコア56

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問